perm filename V243.XGP[TEX,DEK] blob sn#521456 filedate 1980-07-10 generic text, type T, neo UTF8
/NOWRAPAROUND/LMAR=50/TMAR=50/RMAR=1700/BMAR=1/PMAR=0/XLINE=0/FONT#0=NGR13/USETI=000000504*TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX*

␈β	[␈↓ α4␈ε"SECTION␈α4.3␈αof␈αTHE␈αAR␈α⎇T␈αOF␈αCOMPUTER␈αPR␈α␈OGRAMMING
␈β
ε␈↓ β'␈ε6⎇␈ε"␈α1980␈αAddison↑W␈α⎇esley␈αPublishing␈αCompan␈α␈y,␈αInc.
␈β⊃H␈↓ ε2␈ε$0
␈β∪(

␈β↓U␈↓ ↓H␈ε"250␈↓ 
}␈ε"4.3
␈β↓\␈↓ α=␈ε∞ARITH␈α↓MET␈α↓IC
␈βα$␈↓ ↓H␈ε=4␈α␈.3.␈α∩M␈α␈UL␈α⎇TIP␈α␈LE-PR␈α␈ECISI␈α↓O␈α␈N␈α∞ARITHM␈α␈ETIC
␈βαe␈↓ ↓H␈ε"L␈↓ β<␈ε"consider␈α∂operations␈α∂on␈α∂n␈α␈um␈α␈bers␈α∂that␈α∂ha␈α␈v␈α␈e␈α∂arbitrarily␈α∂high␈↓ 
n␈ε"pre-
␈βαj␈↓ ↓`␈ε.ET␈α∂US␈α∂NO␈α␈W
␈ββ⊂␈↓ ↓H␈ε"cision.␈α∃F␈α⎇or␈α∞simplicit␈α␈y␈α∞in␈α∞exposition,␈α∞w␈α␈e␈α∞shall␈α∞assume␈α∞that␈α∞w␈α␈e␈α∞are␈α∞w␈α␈orking␈α
with
␈ββ;␈↓ ↓H␈ε"in␈α␈tegers,␈αinstead␈αof␈αwith␈αn␈α␈um␈α␈bers␈αthat␈αha␈α␈v␈α␈e␈αan␈αem␈α␈bedded␈αradix␈αpoin␈α␈t.
␈β∧(␈↓ ↓H␈ε=4␈α␈.3.1.␈α∩T␈α␈h␈α↓e␈αC␈α↓lass␈α↓ic␈α␈al␈α∞Algo␈α␈r␈α↓it␈α↓hms
␈β∧i␈↓ ↓H␈ε"In␈αthis␈αsection␈αw␈α␈e␈αshall␈αdiscuss␈αalgorithms␈αfor
␈β¬≤␈↓ ↓b␈ε"a)␈↓ α␈ε"addition␈α
or␈↓ βG␈ε"subtraction␈α
of␈ε(␈α
n␈ε"-place␈αin␈α␈tegers,␈α
giving␈α
an␈ε(␈α
n␈ε"␈α␈-place␈α
answ␈α␈er␈α
and␈αa
␈β¬G␈↓ α␈ε"carry;
␈β¬w␈↓ ↓`␈ε"b)␈↓ α␈ε"m␈α␈ultiplication␈α
of␈αan␈ε(␈α
n␈ε"␈α␈-place␈α
in␈α␈teger␈αby␈α
an␈ε(␈αm␈ε"-place␈α
in␈α␈teger,␈αgiving␈α
an␈α(␈ε(m␈ε"␈αλ+
␈βε"␈↓ α␈ε(n␈ε")-place␈αansw␈α␈er;
␈βεQ␈↓ ↓d␈ε"c)␈↓ α␈ε"division␈α
of␈α	an␈α
(␈ε(m␈ε"␈αβ+␈ε(␈α∧n␈ε"␈α␈)-place␈α
in␈α␈teger␈α
by␈α	an␈ε(␈α
n␈ε"-place␈α	in␈α␈teger,␈αgiving␈α	an␈α
(␈ε(m␈ε"␈αβ+␈αβ1)-
␈βε|␈↓ α␈ε"place␈↓ αh␈ε"quotien␈α␈t␈αand␈αan␈ε(␈αn␈ε"-place␈↓ ¬k␈ε"remainder.
␈βπ/␈↓ ↓H␈ε"These␈αma␈α␈y␈αbe␈αcalled␈α\the␈αclassical␈αalgorithms,"␈αsince␈αthe␈αw␈α␈ord␈α\algorithm"␈αw␈α␈as
␈βπZ␈↓ ↓H␈ε"used␈αonly␈αin␈αconnection␈αwith␈αthese␈αprocesses␈αfor␈αsev␈α␈eral␈αcen␈α␈turies.␈α∂The␈αterm␈α\␈ε(n␈ε"␈α␈-
␈βλ␈↓ π¬␈ε+n
␈βλε␈↓ ↓H␈ε"place␈α
in␈α␈teger"␈α∞means␈α
an␈α␈y␈α∞in␈α␈teger␈α
less␈α∞than␈↓ εv␈ε(b␈↓ π→␈ε",␈α∞where␈ε(␈α∞b␈ε"␈α∞is␈α
the␈α
radix␈α∞of␈α
ordinary
␈βλ1␈↓ ↓H␈ε"positional␈α∞n␈α↓otation␈α∂in␈α∂which␈α∂the␈α∞n␈α␈um␈α␈bers␈α∂are␈α∂expressed;␈α⊂such␈α∂n␈α␈um␈α␈bers␈α∂can␈α∞be
␈βλ\␈↓ ↓H␈ε"written␈αusing␈αat␈αm␈α↓ost␈ε(␈αn␈ε"␈α\␈↓ ∧\␈ε"places"␈αin␈αthis␈αn␈α↓otation.
␈β	π␈↓ α␈ε"It␈α
is␈α
a␈α
straigh␈α␈tforw␈α␈ard␈α
matter␈α
to␈α
apply␈α
the␈α
classical␈α
algorithms␈αfor␈α
in␈α␈tegers
␈β	2␈↓ ↓H␈ε"to␈α
n␈α␈um␈α␈bers␈α
with␈α
em␈α␈bedded␈α
radix␈α
poin␈α␈ts␈α
or␈α
to␈αextended-precision␈α
⎇oating␈α
poin␈α␈t
␈β	↑␈↓ ↓H␈ε"n␈α␈um␈α␈bers,␈αin␈αthe␈αsame␈αw␈α␈a␈α␈y␈αthat␈αarithmetic␈αoperations␈αde|ned␈αfor␈αin␈α␈tegers␈αin
␈β	`␈↓ 
t␈ε5MIX
␈β
	␈↓ ↓H␈ε"are␈αapplied␈αto␈αthese␈αm␈α↓ore␈αgeneral␈αproblems.
␈β
4␈↓ α␈ε"In␈αthis␈αsection␈αw␈α␈e␈αshall␈αstudy␈αalgorithms␈αthat␈αdo␈αoperations␈α(a),␈α(b),␈αand␈α(c)
␈β
←␈↓ ↓H␈ε"abo␈α␈v␈α␈e␈α∂for␈α⊂in␈α␈tegers␈α∂expressed␈α⊂in␈α∂radix␈ε(␈α⊂b␈ε"␈α∂n␈α↓otation,␈α⊃where␈ε(␈α∂b␈ε"␈α⊂is␈α∂an␈α␈y␈α⊂giv␈α␈en␈α∂in␈α␈teger
␈β
␈↓ ↓H␈ε6∃␈ε"␈α2.␈α∪Th␈α␈us␈α
the␈α
algorithms␈α∞are␈α
quite␈α
general␈α
de|nitions␈α
of␈α
arithmetic␈α
processes,
␈β6␈↓ ↓H␈ε"and␈α
as␈α
such␈α
they␈α
are␈α
unrelated␈α
to␈α∞an␈α␈y␈α
particular␈α
computer.␈α∪But␈α
the␈α
discussion
␈βa␈↓ ↓H␈ε"in␈αthis␈αsection␈αwill␈αalso␈αbe␈αsomewhat␈αmachine-orien␈α␈ted,␈αsince␈αw␈α␈e␈αare␈αchie⎇y␈αcon-
␈β␈↓ ↓H␈ε"cerned␈αwith␈α
e}cien␈α␈t␈αmeth␈α↓ods␈αfor␈αdoing␈αhigh-precision␈αcalculations␈αby␈α
computer.
␈β7␈↓ ↓H␈ε"Alth␈α↓ough␈α⊃our␈α∩examples␈α∩are␈α∩based␈α⊃on␈α∩the␈α∩m␈α␈ythical␈↓ λM␈ε",␈α∩essen␈α␈tially␈α∩the␈α⊃same
␈β9␈↓ λ∃␈ε5M␈α␈IX
␈βb␈↓ ↓H␈ε"considerations␈α∞apply␈α∞to␈α∞nearly␈α∞ev␈α␈ery␈α∞other␈α∞machine.␈α⊗F␈α⎇or␈α∞con␈α␈v␈α␈enience,␈α∞w␈α␈e␈α∞shall
␈β
∞␈↓ ↓H␈ε"assume␈α|rst␈αthat␈αw␈α␈e␈αha␈α␈v␈α␈e␈αa␈αcomputer␈α(lik␈α␈e␈↓ π)␈ε")␈αthat␈αuses␈αthe␈αsigned-magnitude
␈β
⊂␈↓ εp␈ε5MIX
␈β
9␈↓ ↓H␈ε"represen␈α␈tation␈α
for␈αn␈α␈um␈α␈bers;␈αsuitable␈α
m␈α↓odi|cations␈αfor␈α
complemen␈α␈t␈αn␈α↓otations␈α
are
␈β
d␈↓ ↓H␈ε"discussed␈αnear␈αthe␈αend␈αof␈αthis␈αsection.
␈β∞∂␈↓ α␈ε"The␈α
m␈α↓ost␈α∞importan␈α␈t␈α
fact␈α
to␈α∞understand␈α
about␈α
extended-precision␈α
n␈α␈um␈α␈bers
␈β∞:␈↓ ↓H␈ε"is␈α∂that␈α⊂they␈α∂ma␈α␈y␈α⊂be␈α⊂regarded␈α∂as␈α⊂n␈α␈um␈α␈bers␈α⊂written␈α∂in␈α⊂radix␈↓ 	ε␈ε(w␈↓ 	1␈ε"n␈α↓otation,␈α⊂where
␈β∞f␈↓ ↓H␈ε(w␈↓ ↓q␈ε"is␈α∂the␈α∞computer's␈α∂w␈α␈ord␈α∞size.␈α_F␈α⎇or␈α∂example,␈α∂an␈α∂in␈α␈teger␈α∞that␈α∂|lls␈α∞10␈α∂w␈α␈ords␈α∞on
␈β∂␈↓ εG␈ε%10
␈β∂⊃␈↓ ↓H␈ε"a␈α∂computer␈α∂wh␈α↓ose␈α∂w␈α␈ord␈α⊂size␈α∂is␈↓ ¬E␈ε(w␈↓ ¬p␈ε"=␈α∂1␈↓ ε5␈ε"0␈↓ εv␈ε"has␈α∂100␈α⊂decimal␈α∂digits;␈α⊃but␈α∂w␈α␈e␈α∂will
␈β∂6␈↓ π[␈ε%10
␈β∂<␈↓ ↓H␈ε"consider␈αit␈αto␈αbe␈αa␈α10-place␈αn␈α␈um␈α␈ber␈αto␈αthe␈αbase␈α1␈↓ πI␈ε"0␈↓ π{␈ε".␈α⊂This␈αviewpoin␈α␈t␈αis␈αjusti|ed
␈β∂g␈↓ ↓H␈ε"for␈α∂the␈α∂same␈α∂reason␈α∂that␈α∂w␈α␈e␈α∂ma␈α␈y␈α∂con␈α␈v␈α␈ert,␈α⊂sa␈α␈y,␈α∂from␈↓ λ∨␈ε"binary␈α∂to␈α∂octal␈α∂n␈α↓otation,
␈β⊂∩␈↓ ↓H␈ε"simply␈αby␈αgrouping␈αthe␈αbits␈αtogether.␈α→(See␈αEq.␈α4.1↑5.)
␈β⊂>␈↓ α␈ε"In␈α
these␈α
terms,␈α
w␈α␈e␈α
are␈α
giv␈α␈en␈α
the␈α
follo␈α␈wing␈α
primitiv␈α␈e␈α
operations␈α
to␈α
w␈α␈ork␈α	with:
␈β⊂m␈↓ ↓Q␈ε"a␈↓ ↓t␈ε")␈↓ α␈ε"addition␈αor␈αsubtraction␈αof␈αone-place␈αin␈α␈tegers,␈αgiving␈αa␈αone-place␈αansw␈α␈er␈αand
␈β⊂y␈↓ ↓c␈ε%0
␈β⊃_␈↓ α␈ε"a␈αcarry;
␈β∪(

␈β↓U␈↓ ↓H␈ε"4.3.1␈↓ 
v␈ε"251
␈β↓\␈↓ ε[␈ε∞T␈α↓HE␈α
CL␈α↓AS␈α␈SICA␈α↓L␈α
AL␈α␈G␈α↓ORITH␈α↓MS
␈βα"␈↓ ↓O␈ε"b␈↓ ↓t␈ε")␈↓ α␈ε"m␈α␈ultiplication␈α
of␈α
a␈α
one-place␈αin␈α␈teger␈α
by␈α
an␈α↓other␈α
one-place␈α
in␈α␈teger,␈α
giving␈αa
␈βα/␈↓ ↓c␈ε%0
␈βαM␈↓ α␈ε"t␈α␈w␈α␈o-place␈αansw␈α␈er;
␈βββ␈↓ ↓S␈ε"c␈↓ ↓t␈ε")␈↓ α␈ε"division␈α⊃of␈α⊃a␈α⊃t␈α␈w␈α␈o-place␈α⊃in␈α␈teger␈α⊃by␈α⊃a␈α⊃one-place␈α⊃in␈α␈teger,␈α∩pro␈α␈vided␈α⊃that␈α⊃the
␈ββ⊂␈↓ ↓c␈ε%0
␈ββ/␈↓ α␈ε"quotien␈α␈t␈αis␈αa␈αone-place␈αin␈α␈teger,␈αand␈αyielding␈αalso␈αa␈αone-place␈αremainder.
␈ββd␈↓ ↓H␈ε"By␈αλadjusting␈αλthe␈αλw␈α␈ord␈αλsize,␈α	if␈αλnecessary,␈α	nearly␈α	all␈αλcomputers␈αλwill␈αλha␈α␈v␈α␈e␈αλthese␈αλthree
␈β∧⊂␈↓ ↓H␈ε"operations␈αa␈α␈v␈α}ailable;␈α
so␈αw␈α␈e␈αwill␈α
construct␈αalgorithms␈α
(a),␈α(b),␈α
and␈α(c)␈αmen␈α␈tioned
␈β∧;␈↓ ↓H␈ε"abo␈α␈v␈α␈e␈αin␈αterms␈αof␈αthe␈αprimitiv␈α␈e␈αoperations␈α(a␈↓ π→␈ε"),␈α(b␈↓ πl␈ε"),␈αand␈α(c␈↓ 	↓␈ε").
␈β∧G␈↓ π	␈ε%0␈↓ π[␈ε%0␈↓ λp␈ε%0
␈β∧f␈↓ α␈ε"Since␈αw␈α␈e␈αare␈αvisualizing␈αextended-precision␈αin␈α␈tegers␈αas␈αbase␈ε(␈αb␈ε"␈αn␈α␈um␈α␈bers,␈αit␈αis
␈β¬⊃␈↓ ↓H␈ε"sometimes␈α
helpful␈α∞to␈α∞think␈α∞of␈α
the␈α∞situation␈α∞when␈ε(␈α∞b␈ε"␈α
=␈α
10,␈α∞and␈α∞to␈α∞imagine␈α
that
␈β¬<␈↓ ↓H␈ε"w␈α␈e␈αare␈αdoing␈αthe␈αarithmetic␈αby␈αhand.␈α⊂Then␈αoperation␈α(a␈↓ λI␈ε")␈αis␈αanalogous␈αto␈αmem-
␈β¬I␈↓ λ8␈ε%0
␈β¬h␈↓ ↓H␈ε"orizing␈α∂the␈α∂addition␈α⊂table;␈α⊃(b␈↓ ¬.␈ε")␈α∂is␈α⊂analogous␈α∂to␈α⊂mem␈α↓orizing␈α∂the␈α∂m␈α␈ultiplication
␈β¬t␈↓ ¬≥␈ε%0
␈βε∪␈↓ ↓H␈ε"table;␈α∃and␈α∪(c␈↓ β/␈ε")␈α∩is␈α∪essen␈α␈tially␈α∩mem␈α↓orizing␈α∪the␈α∩m␈α␈ultiplication␈α∩table␈α∪in␈α∩rev␈α␈erse.
␈βε∨␈↓ β≡␈ε%0
␈βε>␈↓ ↓H␈ε"The␈α⊃m␈α↓ore␈α⊃complicated␈α⊃operations␈α⊃(a),␈α∪(b),␈α∩(c)␈α⊃on␈α⊃high-precision␈α⊃n␈α␈um␈α␈bers␈α⊃can
␈βεi␈↓ ↓H␈ε"n␈α↓o␈α␈w␈α∂be␈α∂done␈α∂using␈α∂the␈α∂simple␈α⊂addition,␈α∂subtraction,␈α⊂m␈α␈ultiplication,␈α⊂and␈α∂long-
␈βπ∀␈↓ ↓H␈ε"division␈α∂procedures␈α⊂w␈α␈e␈α⊂are␈α⊂taugh␈α␈t␈α⊂in␈α⊂elemen␈α␈tary␈α⊂sch␈α↓o␈α↓ol.␈α≠In␈α⊂fact,␈α⊃m␈α↓ost␈α⊂of␈α∂the
␈βπ@␈↓ ↓H␈ε"algorithms␈α⊃w␈α␈e␈α⊃shall␈α⊃discuss␈α∩in␈α⊃this␈α⊃section␈α⊃are␈α∩essen␈α␈tially␈α⊃n␈α↓othing␈α⊃m␈α↓ore␈α⊃than
␈βπk␈↓ ↓H␈ε"mechanizations␈αλof␈α	familiar␈α	pencil-and-paper␈αλoperations.␈α∂Of␈α	course,␈α	w␈α␈e␈α	m␈α␈ust␈αλstate
␈βλ⊗␈↓ ↓H␈ε"the␈αalgorithms␈αm␈α␈uch␈αm␈α↓ore␈αprecisely␈αthan␈αthey␈αha␈α␈v␈α␈e␈αev␈α␈er␈αbeen␈αstated␈αin␈αthe␈α|$h
␈βλA␈↓ ↓H␈ε"grade,␈αand␈α
w␈α␈e␈α
sh␈α↓ould␈αalso␈α
attempt␈αto␈α
minimize␈α
computer␈αmem␈α↓ory␈α
and␈αrunning
␈βλl␈↓ ↓H␈ε"time␈αrequiremen␈α␈ts.
␈β	_␈↓ α␈ε"T␈α⎇o␈α
a␈α␈v␈α␈oid␈αa␈α
tedious␈αdiscussion␈α
and␈α
cum␈α␈bersome␈αn␈α↓otations,␈α
let␈αus␈α
assume␈α
that
␈β	C␈↓ ↓H␈ε"all␈α∞n␈α␈um␈α␈bers␈α∂w␈α␈e␈α∞deal␈α∞with␈α∂are␈ε/␈α∞n␈α↓onnegativ␈α␈e.␈ε"␈α_The␈α∞additional␈α∂w␈α␈ork␈α∞of␈α∞computing
␈β	n␈↓ ↓H␈ε"the␈αsigns,␈αetc.,␈αis␈αquite␈αstraigh␈α␈tforw␈α␈ard,␈αand␈α
the␈αreader␈αwill␈α|nd␈αit␈αeasy␈αto␈α|ll␈αin
␈β
→␈↓ ↓H␈ε"an␈α␈y␈αdetails␈αof␈αthis␈αsort.
␈β
D␈↓ α␈ε"First␈α
comes␈α	addition,␈α
which␈α
of␈α	course␈α
is␈α
v␈α␈ery␈α	simple,␈α
but␈α
it␈α	is␈α
w␈α␈orth␈α	studying
␈β
p␈↓ ↓H␈ε"since␈αthe␈αsame␈αideas␈αoccur␈αin␈αthe␈αother␈αalgorithms␈αalso:
␈β0␈↓ ↓H␈ε2Algorithm␈α⊃A␈ε"␈α∩(␈ε/Addition␈α⊃of␈α∩n␈α↓onnegativ␈α␈e␈α∩in␈α␈tegers␈↓ πE␈ε")␈ε2.␈ε"␈α$Giv␈α␈en␈α⊃n␈α↓onnegativ␈α␈e␈ε(␈α∩n␈ε"␈α␈-place
␈β[␈↓ ↓H␈ε"in␈α␈tegers␈α(␈↓ αX␈ε(u␈↓ α⎇␈ε(u␈↓ β)␈ε".␈αε.␈αε.␈↓ βY␈ε(u␈↓ ∧α␈ε")␈↓ ∧(␈ε"and␈α(␈↓ ∧y␈ε(v␈↓ ¬≠␈ε(v␈↓ ¬C␈ε".␈αε.␈αε.␈↓ ¬s␈ε(v␈↓ ε→␈ε")␈↓ ε4␈ε",␈αthis␈αalgorithm␈αforms␈αtheir␈αradix-␈ε(b␈ε"␈αsum,
␈βh␈↓ αm␈ε%1␈↓ β∩␈ε%2␈↓ βn␈ε+n␈↓ ∧∞␈ε+b␈↓ ¬
␈ε%1␈↓ ¬-␈ε%2␈↓ ε¬␈ε+n␈↓ ε%␈ε+b
␈βπ␈↓ ↓H␈ε"(␈↓ ↓T␈ε(w␈↓ ↓}␈ε(w␈↓ α(␈ε(w␈↓ αY␈ε".␈αε.␈αε.␈↓ β	␈ε(w␈↓ β6␈ε")␈↓ βQ␈ε".␈α≤(Here␈↓ ∧Y␈ε(w␈↓ ¬⊃␈ε"is␈α∞the␈α∞\␈↓ ε	␈ε"carry,"␈α∞and␈α∞it␈α∞will␈α∞alw␈α␈a␈α␈ys␈α∞be␈α∞equal␈α∞to␈α∞0␈α
or
␈β∪␈↓ ↓m␈ε%0␈↓ α↔␈ε%1␈↓ αB␈ε%2␈↓ β"␈ε+n␈↓ βB␈ε+b␈↓ ∧s␈ε%0
␈β2␈↓ ↓H␈ε"1.)
␈βh␈↓ ↓J␈ε2A1.␈↓ α	␈ε"[Initialize.]␈α_Set␈↓ ∧¬␈ε(j␈↓ ∧ ␈ε6␈ ␈ε(␈α
n␈ε",␈↓ ∧y␈ε(k␈↓ ¬_␈ε6␈ ␈ε"␈α
0.␈α_(The␈αv␈α}ariable␈↓ πV␈ε(j␈↓ πs␈ε"will␈αrun␈αthrough␈αthe␈αv␈α}arious
␈β
∪␈↓ α␈ε"digit␈αpositions,␈αand␈αthe␈αv␈α}ariable␈↓ ε␈ε(k␈↓ ε+␈ε"k␈α␈eeps␈αtrack␈αof␈αcarries␈αat␈αeach␈αstep.)
␈β
I␈↓ ↓J␈ε2A2.␈↓ α	␈ε"[Add␈α∞digits.]␈α≡Set␈↓ ∧+␈ε(w␈↓ ∧b␈ε6␈ ␈ε"␈α
(␈↓ ¬∨␈ε(u␈↓ ¬M␈ε"+␈↓ ¬z␈ε(v␈↓ ε%␈ε"+␈↓ εR␈ε(k␈↓ εf␈ε")␈↓ εx␈ε"mod␈↓ πB␈ε(b␈ε",␈α∂and␈↓ λ3␈ε(k␈↓ λU␈ε6␈ ␈α
b␈ε"(␈↓ 	 ␈ε(u␈↓ 	N␈ε"+␈↓ 	{␈ε(v␈↓ 
&␈ε"+␈↓ 
S␈ε(k␈↓ 
g␈ε")/␈ε(b␈ε6c␈ε".
␈β
U␈↓ ∧E␈ε+j␈↓ ¬4␈ε+j␈↓ ε␈ε+j␈↓ 	5␈ε+j␈↓ 

␈ε+j
␈β
t␈↓ α␈ε"(In␈α
other␈α∞w␈α␈ords,␈↓ ∧_␈ε(k␈↓ ∧9␈ε"is␈α∞set␈α
to␈α∞1␈α
or␈α
0,␈α∞depending␈α∞on␈α
whether␈α∞a␈α
\carry"␈α
occurs
␈β∞∨␈↓ α␈ε"or␈αn␈α↓ot,␈αi.e.,␈α
whether␈↓ ∧R␈ε(u␈↓ ∧}␈ε"+␈↓ ¬*␈ε(v␈↓ ¬S␈ε"+␈↓ ¬␈␈ε(k␈↓ ε≥␈ε6∃␈ε(␈αb␈ε"␈αor␈αn␈α↓ot.␈α⊃A␈α␈t␈αm␈α↓ost␈αone␈αcarry␈αis␈αpossible
␈β∞,␈↓ ∧g␈ε+j␈↓ ¬;␈ε+j
␈β∞J␈↓ α␈ε"during␈αthe␈αt␈α␈w␈α␈o␈αadditions,␈αsince␈αw␈α␈e␈αalw␈α␈a␈α␈ys␈αha␈α␈v␈α␈e
␈β∂ ␈↓ ∧∧␈ε(u␈↓ ∧0␈ε"+␈↓ ∧\␈ε(v␈↓ ¬¬␈ε"+␈↓ ¬1␈ε(k␈↓ ¬O␈ε6∀␈ε"␈α
(␈ε(b␈ε6␈αλ␈␈ε"␈αλ1)␈αλ+␈αλ(␈ε(b␈ε6␈αλ␈␈ε"␈αλ1)␈αλ+␈αλ1␈α
<␈α
2␈ε(b␈ε"␈α↓,
␈β∂-␈↓ ∧→␈ε+j␈↓ ∧m␈ε+j
␈β∂v␈↓ α␈ε"by␈↓ α?␈ε"induction␈αon␈αthe␈αcomputation.)
␈β⊂,␈↓ ↓J␈ε2A3.␈↓ α	␈ε"[Lo␈α↓op␈α
on␈↓ β≡␈ε(j␈↓ β/␈ε".]␈α∩Decrease␈↓ ∧g␈ε(j␈↓ ¬α␈ε"by␈α
one.␈α∂No␈α␈w␈α
if␈↓ εs␈ε(j␈↓ π∞␈ε">␈α
0,␈α
go␈α
back␈α
to␈α
step␈α
A2;␈α
otherwise
␈β⊂W␈↓ α␈ε"set␈↓ αD␈ε(w␈↓ αx␈ε6␈ ␈↓ β&␈ε(k␈↓ βG␈ε"and␈αterminate␈αthe␈αalgorithm.
␈β⊂`␈↓ π8␈∧⊂`π8≠∂
␈β⊂d␈↓ α↑␈ε%0
␈β⊃_␈↓ ↓H␈ε"F␈α⎇or␈αa␈αformal␈αpro␈α↓of␈αthat␈αAlgorithm␈αA␈αis␈αa␈αv␈α}alid,␈αsee␈αexercise␈α4.
␈β∪(

␈β↓U␈↓ ↓H␈ε"252␈↓ 
b␈ε"4.3.1
␈β↓\␈↓ α=␈ε∞ARITH␈α↓MET␈α↓IC
␈βα$␈↓ α␈ε"A␈↓ αw␈ε"program␈αfor␈αthis␈αaddition␈αprocess␈αmigh␈α␈t␈αtak␈α␈e␈αthe␈αfollo␈α␈wing␈αform:
␈βα&␈↓ α2␈ε5MIX
␈βαt␈↓ ↓H␈ε2Program␈αA␈ε"␈α
(␈ε/Addition␈αof␈αn␈α↓onnegativ␈α␈e␈αin␈α␈tegers␈↓ π␈ε")␈ε2.␈ε"␈α∃Let␈↓ λ1␈ε"(␈↓ λ=␈ε(u␈↓ λa␈ε")␈ε6␈α
⊃␈↓ 	=␈ε"+␈↓ 	g␈ε(j␈↓ 	x␈ε",␈↓ 
F␈ε"(␈↓ 
R␈ε(v␈↓ 
r␈ε")␈ε6␈α
⊃
␈βαv␈↓ πx␈ε5LOC␈↓ 	%␈ε5U␈↓ 

␈ε5LOC
␈ββ␈↓ λQ␈ε+j␈↓ 
c␈ε+j
␈ββ∨␈↓ ↓c␈ε"+␈↓ α∂␈ε(j␈↓ α ␈ε",␈↓ αn␈ε"(␈↓ αz␈ε(w␈↓ β#␈ε")␈ε6␈α
⊃␈↓ ∧α␈ε"+␈↓ ∧.␈ε(j␈↓ ∧?␈ε",␈↓ ∧U␈ε"rI␈↓ ∧o␈ε"1␈ε6␈α
⊃␈↓ ¬9␈ε(j␈↓ ¬J␈ε",␈↓ ¬`␈ε"rA␈↓ ε∩␈ε6⊃␈↓ ε@␈ε(k␈↓ εT␈ε",␈αw␈α␈ord␈αsize␈↓ λ¬␈ε6⊃␈ε(␈α
b␈ε",␈↓ λu␈ε6⊃␈ε(␈α
n␈ε".
␈ββ!␈↓ ↓H␈ε5V␈↓ α6␈ε5L␈α␈OC␈↓ βg␈ε5W␈↓ λX␈ε5N
␈ββ+␈↓ β∀␈ε+j
␈ββw␈↓ αr␈ε)01␈↓ βn␈ε5EN␈α␈T1␈↓ ∧L␈ε5N␈↓ ¬{␈ε#1␈↓ ε⎇␈ε0Al.␈α∂Initialize.␈↓ λ↑␈ε)j␈↓ λw␈ε7␈ ␈ε)␈α
n␈ε#.
␈β∧⊗␈↓ ε⎇␈∧∧⊗ε⎇α↓A
␈β∧≡␈↓ αr␈ε)02␈↓ βn␈ε5JO␈α␈V␈↓ ∧L␈ε5OFLO␈↓ ¬{␈ε#1␈↓ ε⎇␈ε#En␈α␈sure␈αo␈α}v␈α␈er⎇␈α␈o␈α␈w␈αi␈α↓s␈αo␈α␈{.
␈β∧F␈↓ αr␈ε)03␈↓ β5␈ε51H␈↓ βn␈ε5EN␈α␈TA␈↓ ∧L␈ε50␈↓ ¬+␈ε)N␈↓ ¬R␈ε#+␈αλ1␈ε7␈απ␈␈↓ ε;␈ε)K␈↓ ε⎇␈ε)k␈↓ π→␈ε7␈ ␈ε#␈α	0.
␈β∧m␈↓ αr␈ε)04␈↓ βn␈ε5J1␈α␈Z␈↓ ∧L␈ε53F␈↓ ¬+␈ε)N␈↓ ¬R␈ε#+␈αλ1␈ε7␈απ␈␈↓ ε;␈ε)K␈↓ ε⎇␈ε#T␈α⎇o␈αA3␈αif␈↓ λ↓␈ε)j␈↓ λ~␈ε#=␈α	0.
␈β¬∃␈↓ αr␈ε)05␈↓ β5␈ε52H␈↓ βn␈ε5AD␈α␈D␈↓ ∧L␈ε5U,1␈↓ ¬s␈ε)N␈↓ ε⎇␈ε0A2␈α␈.␈α⊂Ad␈α␈d␈αd␈α␈i␈↓ λ!␈ε0g␈↓ λ2␈ε0its.
␈β¬4␈↓ ε⎇␈∧¬4ε⎇α↓%␈↓ λ2␈∧¬4λ2α-
␈β¬=␈↓ αr␈ε)06␈↓ βn␈ε5AD␈α␈D␈↓ ∧L␈ε5V,1␈↓ ¬s␈ε)N
␈β¬d␈↓ αr␈ε)07␈↓ βn␈ε5ST␈α␈A␈↓ ∧L␈ε5W,1␈↓ ¬s␈ε)N
␈βε␈↓ αr␈ε)08␈↓ βn␈ε5DE␈α␈C1␈↓ ∧L␈ε51␈↓ ¬s␈ε)N␈↓ ε⎇␈ε0A3␈α␈.␈α⊂Loo␈↓ πv␈ε0p␈↓ λ∀␈ε0o␈α␈n␈↓ λB␈ε)j␈↓ λQ␈ε0.
␈βε+␈↓ ε⎇␈∧ε+ε⎇αz␈↓ π}␈∧ε+π}αE␈↓ λJ␈∧ε+λJα⊃
␈βε3␈↓ αr␈ε)09␈↓ βn␈ε5JN␈α␈OV␈↓ ∧L␈ε51B␈↓ ¬s␈ε)N␈↓ ε⎇␈ε#If␈αno␈αo␈α␈v␈α␈e␈α␈r⎇o␈α␈w,␈αset␈↓ 	␈ε)k␈↓ 	(␈ε7␈ ␈ε#␈α	0.
␈βε[␈↓ αr␈ε)10␈↓ βn␈ε5EN␈α␈TA␈↓ ∧L␈ε51␈↓ ¬s␈ε)K␈↓ ε⎇␈ε#Oth␈α␈erwise,␈αset␈↓ λW␈ε)k␈↓ λs␈ε7␈ ␈ε#␈α	1.
␈βπβ␈↓ αr␈ε)11␈↓ βn␈ε5J1␈α␈P␈↓ ∧L␈ε52B␈↓ ¬s␈ε)K␈↓ ε⎇␈ε#T␈α⎇o␈αA2␈αif␈↓ λ↓␈ε)j␈↓ λ~␈ε7≤␈ε#␈α	0.
␈βπ*␈↓ αr␈ε)12␈↓ β5␈ε53H␈↓ βn␈ε5ST␈α␈A␈↓ ∧L␈ε5W␈↓ ¬{␈ε#1␈↓ ε⎇␈ε#S␈α␈tore␈α|␈α␈na␈α␈l␈αca␈α␈rry␈αin␈↓ 	≠␈ε)w␈↓ 	B␈ε#.
␈βπ1␈↓ 	p␈∧π1	p≠∂
␈βπ6␈↓ 	2␈ε&0
␈βλ¬␈↓ ↓H␈ε"The␈α
running␈α	time␈α
for␈α
this␈α
program␈α
is␈α
10␈↓ ε1␈ε(N␈↓ εX␈ε"+␈α∧6␈α	cy␈α␈cles,␈αindependen␈α␈t␈α
of␈α
the␈α	n␈α␈um␈α␈ber
␈βλ0␈↓ ↓H␈ε"of␈αcarries,␈↓ αn␈ε(K␈↓ β⊃␈ε".␈α⊂The␈αquan␈α␈tit␈α␈y␈↓ ¬∧␈ε(K␈↓ ¬3␈ε"is␈αanalyzed␈αin␈αdetail␈αat␈αthe␈αclose␈αof␈αthis␈αsection.
␈βλ]␈↓ α␈ε"Man␈α␈y␈αm␈α↓odi|cations␈α
of␈α
Algorithm␈αA␈α
are␈αpossible,␈αand␈α
only␈αa␈α
few␈αof␈α
these␈α
are
␈β		␈↓ ↓H␈ε"men␈α␈tioned␈α
in␈αthe␈α
exercises␈αbelo␈α␈w.␈α∂A␈αchapter␈α
on␈αgeneralizations␈α
of␈αthis␈α
algorithm
␈β	4␈↓ ↓H␈ε"migh␈α␈t␈αbe␈αen␈α␈titled␈α\Ho␈α␈w␈αto␈αdesign␈αaddition␈αcircuits␈αfor␈αa␈αdigital␈αcomputer."
␈β	a␈↓ α␈ε"The␈α∂problem␈α⊂of␈α∂subtraction␈α⊂is␈α∂similar␈α⊂to␈α∂addition,␈α⊂but␈α⊂the␈α∂di{erences␈α∂are
␈β
␈↓ ↓H␈ε"w␈α␈orth␈αn␈α↓oting:
␈β
\␈↓ ↓H␈ε2Algorithm␈α
S␈ε"␈α
(␈ε/Subtraction␈α
of␈α
n␈α↓onnegativ␈α␈e␈α
in␈α␈tegers␈↓ πW␈ε")␈ε2.␈ε"␈α≠Giv␈α␈en␈α
n␈α↓onnegativ␈α␈e␈ε(␈α
n␈ε"␈α␈-place
␈βπ␈↓ ↓H␈ε"in␈α␈tegers␈α∞(␈↓ α[␈ε(u␈↓ β↓␈ε(u␈↓ β,␈ε".␈αε.␈αε.␈↓ β\␈ε(u␈↓ ∧¬␈ε")␈↓ ∧.␈ε6∃␈ε"␈α∂(␈↓ ∧m␈ε(v␈↓ ¬∂␈ε(v␈↓ ¬7␈ε".␈αε.␈αε.␈↓ ¬g␈ε(v␈↓ ε
␈ε")␈↓ ε'␈ε",␈α⊂this␈α∞algorithm␈α∂forms␈α∂their␈α∞n␈α↓onnegativ␈α␈e
␈β∪␈↓ αp␈ε%1␈↓ β⊗␈ε%2␈↓ βq␈ε+n␈↓ ∧⊃␈ε+b␈↓ ∧}␈ε%1␈↓ ¬ ␈ε%2␈↓ ¬y␈ε+n␈↓ ε→␈ε+b
␈β2␈↓ ↓H␈ε"radix-␈ε(b␈↓ αA␈ε"di{erence,␈α(␈↓ βw␈ε(w␈↓ ∧!␈ε(w␈↓ ∧R␈ε".␈αε.␈αε.␈↓ ¬α␈ε(w␈↓ ¬/␈ε")␈↓ ¬J␈ε".
␈β?␈↓ ∧⊂␈ε%1␈↓ ∧;␈ε%2␈↓ ¬≠␈ε+n␈↓ ¬;␈ε+b
␈βq␈↓ ↓P␈ε2S1.␈↓ α	␈ε"[Initialize.]␈α→Set␈↓ ∧ε␈ε(j␈↓ ∧!␈ε6␈ ␈ε(␈α
n␈ε",␈↓ ∧{␈ε(k␈↓ ¬→␈ε6␈ ␈ε"␈α
0.
␈β/␈↓ ↓P␈ε2S2.␈↓ α	␈ε"[Subtract␈αdigits.]␈α∃Set␈↓ ∧a␈ε(w␈↓ ¬∀␈ε6␈ ␈ε"␈α
(␈↓ ¬N␈ε(u␈↓ ¬x␈ε6␈␈↓ ε!␈ε(v␈↓ εG␈ε"+␈↓ εq␈ε(k␈↓ π¬␈ε")␈↓ π↔␈ε"mod␈↓ πa␈ε(b␈ε",␈αand␈↓ λJ␈ε(k␈↓ λh␈ε6␈ ␈α
b␈ε"(␈↓ 	0␈ε(u␈↓ 	Z␈ε6␈␈↓ 
β␈ε(v␈↓ 
*␈ε"+␈↓ 
S␈ε(k␈↓ 
g␈ε")/␈ε(b␈ε6c␈ε".
␈β;␈↓ ∧{␈ε+j␈↓ ¬c␈ε+j␈↓ ε3␈ε+j␈↓ 	E␈ε+j␈↓ 
∃␈ε+j
␈βZ␈↓ α␈ε"(In␈α⊃other␈α⊂w␈α␈ords,␈↓ ∧"␈ε(k␈↓ ∧G␈ε"is␈α⊃set␈α⊃to␈ε6␈α⊂␈␈ε"1␈α⊃or␈α⊃0,␈α∩depending␈α⊂on␈α⊃whether␈α⊃a␈α⊂\␈↓ 
-␈ε"borro␈α␈w"
␈β
¬␈↓ α␈ε"occurs␈α∞or␈α
n␈α↓ot,␈α∞i.e.,␈α∞whether␈↓ ¬G␈ε(u␈↓ ¬t␈ε6␈␈↓ ε!␈ε(v␈↓ εK␈ε"+␈↓ εx␈ε(k␈↓ π→␈ε"<␈α0␈α∞or␈α
n␈α↓ot.␈α∃In␈α
the␈α∞calculation␈α
of
␈β
∩␈↓ ¬\␈ε+j␈↓ ε3␈ε+j
␈β
1␈↓ α␈ε(w␈↓ α5␈ε",␈α
n␈α↓ote␈α∞that␈α
w␈α␈e␈α
m␈α␈ust␈α
ha␈α␈v␈α␈e␈ε6␈α∞␈␈ε(b␈ε"␈α=␈α0␈ε6␈α	␈␈ε"␈α	(␈ε(b␈ε6␈α	␈␈ε"␈αλ1)␈α	+␈α	(␈ε6␈␈ε"1)␈ε6␈α∀␈↓ 	8␈ε(u␈↓ 	e␈ε6␈␈↓ 
∩␈ε(v␈↓ 
;␈ε"+␈↓ 
h␈ε(k␈↓ λ␈ε6∀
␈β
=␈↓ α&␈ε+j␈↓ 	M␈ε+j␈↓ 
#␈ε+j
␈β
\␈↓ α␈ε"(␈ε(b␈ε6␈α	␈␈ε"␈α	1)␈ε6␈α	␈␈ε"␈α	0␈αλ+␈α	0␈α<␈ε(␈αb␈ε";␈α∞hence␈α
0␈ε6␈α∀␈↓ ε ␈ε(u␈↓ εM␈ε6␈␈↓ εz␈ε(v␈↓ π#␈ε"+␈↓ πP␈ε(k␈↓ πm␈ε"+␈ε(␈α	b␈ε"␈α<␈α2␈ε(b␈ε"␈α↓,␈α
and␈α
this␈α
suggests
␈β
h␈↓ ε5␈ε+j␈↓ π␈ε+j
␈β∞π␈↓ α␈ε"the␈αmeth␈α↓od␈αof␈αcomputer␈αimplemen␈α␈tation␈αexplained␈αbelo␈α␈w.)
␈β∞E␈↓ ↓P␈ε2S3.␈↓ α	␈ε"[Lo␈α↓op␈α
on␈↓ β∨␈ε(j␈↓ β0␈ε".]␈α∪Decrease␈↓ ∧i␈ε(j␈↓ ¬∧␈ε"by␈αone.␈α∂No␈α␈w␈α
if␈↓ εw␈ε(j␈↓ π∩␈ε">␈α
0,␈α
go␈αback␈α
to␈α
step␈αS2;␈α
otherwise
␈β∞q␈↓ α␈ε"terminate␈αthe␈αalgorithm.␈α~(When␈αthe␈α
algorithm␈αterminates,␈αw␈α␈e␈αsh␈α↓ould␈αha␈α␈v␈α␈e
␈β∂≤␈↓ α␈ε(k␈↓ α*␈ε"=␈α
0;␈αthe␈αcondition␈↓ ∧\␈ε(k␈↓ ∧{␈ε"=␈ε6␈α
␈␈ε"1␈αwill␈αoccur␈αif␈αand␈αonly␈αif␈↓ λh␈ε(v␈↓ 	⊂␈ε".␈αε.␈αε.␈↓ 	@␈ε(v␈↓ 	p␈ε">␈↓ 
≡␈ε(u␈↓ 
I␈ε".␈αε.␈αε.␈↓ 
y␈ε(u␈↓ "␈ε",
␈β∂(␈↓ λy␈ε%1␈↓ 	R␈ε+n␈↓ 
3␈ε%1␈↓ ∞␈ε+n
␈β∂G␈↓ α␈ε"and␈αthis␈αis␈αcon␈α␈trary␈αto␈αthe␈αgiv␈α␈en␈αassumptions.␈α⊂See␈αexercise␈α12.)
␈β∂P␈↓ 
⊗␈∧∂P
⊗≠∂
␈β⊂⊗␈↓ α␈ε"In␈αa␈↓ β≠␈ε"program␈αto␈αimplemen␈α␈t␈α
subtraction,␈αit␈αis␈αm␈α↓ost␈αcon␈α␈v␈α␈enien␈α␈t␈αto␈αretain
␈β⊂_␈↓ αV␈ε5MIX
␈β⊂B␈↓ ↓H␈ε"the␈αv␈α}alue␈α1␈απ+␈↓ β&␈ε(k␈↓ βF␈ε"instead␈αof␈↓ ∧k␈ε(k␈↓ ¬␈ε"through␈α↓out␈αthe␈αalgorithm,␈αso␈αthat␈αw␈α␈e␈αcan␈αcalculate
␈β⊂m␈↓ ↓H␈ε(u␈↓ ↓t␈ε6␈␈↓ α!␈ε(v␈↓ αJ␈ε"+␈αλ(1␈α	+␈↓ βI␈ε(k␈↓ β]␈ε")␈α	+␈αλ(␈ε(b␈ε6␈α	␈␈ε"␈α	1)␈αin␈α
step␈α
S2.␈α~(Recall␈α
that␈ε(␈α
b␈ε"␈α
is␈αthe␈α
w␈α␈ord␈α
size.)␈α~This
␈β⊂y␈↓ ↓\␈ε+j␈↓ α2␈ε+j
␈β⊃_␈↓ ↓H␈ε"is␈αillustrated␈αin␈αthe␈αfollo␈α␈wing␈αcode.
␈β∪(

␈β↓U␈↓ ↓H␈ε"4.3.1␈↓ 
v␈ε"253
␈β↓\␈↓ ε[␈ε∞T␈α↓HE␈α
CL␈α↓AS␈α␈SICA␈α↓L␈α
AL␈α␈G␈α↓ORITH␈α↓MS
␈βα"␈↓ ↓H␈ε2Program␈α∂S␈ε"␈α⊂(␈ε/Subtraction␈α⊂of␈α∂n␈α↓onnegativ␈α␈e␈α⊂in␈α␈tegers␈↓ πL␈ε")␈ε2.␈ε"␈α∨This␈α⊂program␈α⊂is␈α∂analogous
␈βαM␈↓ ↓H␈ε"to␈α∂the␈α∂code␈α∂in␈α⊂Program␈α∂A␈↓ ∧l␈ε";␈α⊃w␈α␈e␈α∂ha␈α␈v␈α␈e␈↓ ε∃␈ε"rI␈↓ ε/␈ε"1␈ε6␈α⊂⊃␈↓ π∧␈ε(j␈↓ π∃␈ε",␈↓ π/␈ε"rA␈↓ πf␈ε6⊃␈ε"␈α⊂1␈α
+␈↓ λd␈ε(k␈↓ λx␈ε".␈α~Here,␈α⊂as␈α∂in␈α∂other
␈βαy␈↓ ↓H␈ε"programs␈α∞of␈α∞this␈α∞section,␈α∂location␈↓ ε1␈ε"con␈α␈tains␈α∂the␈α∞constan␈α␈t␈ε(␈α∞b␈ε6␈α	␈␈ε"␈α
1,␈α∞the␈α∞largest
␈βα{␈↓ ¬k␈ε5WM␈α␈1
␈ββ$␈↓ ↓H␈ε"possible␈α
v␈α}alue␈αthat␈αcan␈αbe␈αstored␈αin␈α
a␈↓ εY␈ε"w␈α␈ord;␈αcf.␈αProgram␈α4.2.3D␈↓ 	c␈ε",␈αlines␈α
38↑39.
␈ββ&␈↓ ε∃␈ε5MIX
␈ββs␈↓ β⊂␈ε)01␈↓ ∧␈ε5ENT1␈↓ ∧j␈ε5N␈↓ ¬x␈ε#1␈↓ εZ␈ε0S␈α␈1.␈α∂Initialize.␈↓ λ=␈ε)j␈↓ λV␈ε7␈ ␈ε)␈α
n␈ε#.
␈β∧∩␈↓ εZ␈∧∧∩εZα↓C
␈β∧~␈↓ β⊂␈ε)02␈↓ ∧␈ε5JOV␈↓ ∧j␈ε5OFLO␈↓ ¬x␈ε#1␈↓ εZ␈ε#Ens␈α␈ure␈αo␈α␈v␈α}er⎇␈α␈o␈α␈w␈αi␈α↓s␈αo␈α␈{.
␈β∧B␈↓ β⊂␈ε)03␈↓ βS␈ε51H␈↓ ∧␈ε5J1Z␈↓ ∧j␈ε5DONE␈↓ ¬P␈ε)K␈↓ ¬x␈ε#+␈απ1␈↓ εZ␈ε#T␈α⎇ermin␈α␈ate␈αif␈↓ λ→␈ε)j␈↓ λ2␈ε#=␈α
0␈α␈.
␈β∧j␈↓ β⊂␈ε)04␈↓ ∧␈ε5ENTA␈↓ ∧j␈ε51␈↓ ¬p␈ε)K␈↓ εZ␈ε#S␈α␈et␈↓ π∪␈ε)k␈↓ π/␈ε7␈ ␈ε#␈α
0␈α␈.
␈β¬⊃␈↓ β⊂␈ε)05␈↓ βS␈ε52H␈↓ ∧␈ε5ADD␈↓ ∧j␈ε5U,1␈↓ ¬p␈ε)N␈↓ εZ␈ε0S␈α␈2.␈α∂Su␈α␈bt␈α␈ract␈αd␈α␈i␈↓ λ:␈ε0g␈↓ λJ␈ε0i␈α↓ts␈α␈.
␈β¬1␈↓ εZ␈∧¬1εZα↓`␈↓ λJ␈∧¬1λJα-
␈β¬9␈↓ β⊂␈ε)06␈↓ ∧␈ε5SUB␈↓ ∧j␈ε5V,1␈↓ ¬p␈ε)N␈↓ εZ␈ε#Com␈α␈pu␈α␈te␈↓ πj␈ε)u␈↓ λ∪␈ε7␈␈↓ λ;␈ε)v␈↓ λa␈ε#+␈↓ 	
␈ε)k␈↓ 	$␈ε#+␈ε)␈απb␈ε#␈α↓.
␈β¬D␈↓ π}␈ε,j␈↓ λL␈ε,j
␈β¬`␈↓ β⊂␈ε)07␈↓ ∧␈ε5ADD␈↓ ∧j␈ε5WM1␈↓ ¬p␈ε)N
␈βελ␈↓ β⊂␈ε)08␈↓ ∧␈ε5STA␈↓ ∧j␈ε5W,1␈↓ ¬p␈ε)N␈↓ εZ␈ε#(Ma␈α}y␈αb␈α␈e␈αmin␈α␈u␈α␈s␈αzero)
␈βε0␈↓ β⊂␈ε)09␈↓ ∧␈ε5DEC1␈↓ ∧j␈ε51␈↓ ¬p␈ε)N␈↓ εZ␈ε0S␈α␈3.␈α∂Lo␈α↓o␈↓ πM␈ε0p␈↓ πk␈ε0on␈↓ λ→␈ε)j␈↓ λ)␈ε0.
␈βεO␈↓ εZ␈∧εOεZαt␈↓ πU␈∧εOπUαE␈↓ λ"␈∧εOλ"α⊃
␈βεW␈↓ β⊂␈ε)10␈↓ ∧␈ε5JOV␈↓ ∧j␈ε51B␈↓ ¬p␈ε)N␈↓ εZ␈ε#If␈αo␈α␈v␈α␈e␈α␈r⎇o␈α}w␈α↓,␈αset␈↓ λ:␈ε)k␈↓ λU␈ε7␈ ␈ε#␈α
0.
␈βε␈␈↓ β⊂␈ε)11␈↓ ∧␈ε5ENTA␈↓ ∧j␈ε50␈↓ ¬H␈ε)N␈↓ ¬p␈ε7␈␈↓ ε→␈ε)K␈↓ εZ␈ε#Oth␈α␈erwise,␈αset␈↓ λ4␈ε)k␈↓ λP␈ε7␈ ␈α	␈␈ε#␈α↓1␈α␈.
␈βπ&␈↓ β⊂␈ε)12␈↓ ∧␈ε5J1P␈↓ ∧j␈ε52B␈↓ ¬H␈ε)N␈↓ ¬p␈ε7␈␈↓ ε→␈ε)K␈↓ εZ␈ε#Bac␈α␈k␈αto␈αS␈α␈2.
␈βπN␈↓ β⊂␈ε)13␈↓ ∧␈ε5HLT␈↓ ∧j␈ε55␈↓ εZ␈ε#(Error,␈↓ πG␈ε)v␈↓ πb␈ε#>␈ε)␈α	u␈ε#␈α↓)
␈βπU␈↓ λP␈∧πUλP≠∂
␈βλ#␈↓ ↓H␈ε"The␈α
running␈α∞time␈α∞for␈α∞this␈α
program␈α∞is␈α∞12␈↓ εL␈ε(N␈↓ εx␈ε"+␈α	3␈α∞cy␈α␈cles,␈α∞sligh␈α␈tly␈α∞longer␈α∞than␈α
the
␈βλN␈↓ ↓H␈ε"corresponding␈αam␈α↓oun␈α␈t␈αfor␈αProgram␈αA.
␈βλz␈↓ α␈ε"The␈α∞reader␈α
ma␈α␈y␈α∞w␈α␈onder␈α
if␈α∞it␈α
w␈α␈ould␈α
n␈α↓ot␈α∞be␈α
w␈α␈orth␈α␈while␈α∞to␈α
ha␈α␈v␈α␈e␈α∞a␈α
com␈α␈bined
␈β	%␈↓ ↓H␈ε"addition-subtraction␈α∂routine␈α⊂in␈α⊂place␈α∂of␈α⊂the␈α∂t␈α␈w␈α␈o␈α⊂algorithms␈α⊂A␈α∂and␈α⊂S␈↓ 
_␈ε".␈α≠But␈α∂an
␈β	P␈↓ ↓H␈ε"examination␈αλof␈αλthe␈αλcomputer␈αλprograms␈αλsh␈α↓o␈α␈ws␈αλthat␈α	it␈αλis␈αλgenerally␈αλbetter␈αλto␈αλuse␈αλt␈α␈w␈α␈o
␈β	{␈↓ ↓H␈ε"di{eren␈α␈t␈αroutines,␈αso␈αthat␈αthe␈αinner␈αlo␈α↓ops␈αof␈αthe␈αcomputations␈αcan␈αbe␈αperformed
␈β
&␈↓ ↓H␈ε"as␈αrapidly␈αas␈αpossible,␈αsince␈αthe␈αprograms␈αare␈αso␈αsh␈α↓ort.
␈β
]␈↓ α␈ε"Our␈α⊂next␈α⊃problem␈α⊂is␈↓ ∧i␈ε"m␈α␈ultiplication,␈α∩and␈α⊂here␈α⊃w␈α␈e␈α⊂carry␈α⊂the␈α⊃ideas␈α⊂used␈α⊂in
␈βλ␈↓ ↓H␈ε"Algorithm␈αA␈αa␈αlittle␈αfurther:
␈βK␈↓ ↓H␈ε2Algorithm␈α∂M␈ε"␈α⊂(␈ε/Multiplication␈α∂of␈α⊂n␈α↓onnegativ␈α␈e␈α∂in␈α␈tegers␈↓ λ∃␈ε")␈ε2.␈ε"␈α∨Giv␈α␈en␈α⊂n␈α↓onnegativ␈α␈e␈α∂in-
␈βv␈↓ ↓H␈ε"tegers␈αλ(␈↓ α8␈ε(u␈↓ α]␈ε(u␈↓ β	␈ε".␈αε.␈αε.␈↓ β9␈ε(u␈↓ βb␈ε")␈↓ ∧∧␈ε"and␈α	(␈↓ ∧S␈ε(v␈↓ ∧u␈ε(v␈↓ ¬≥␈ε".␈αε.␈αε.␈↓ ¬M␈ε(v␈↓ ¬{␈ε")␈↓ ε∃␈ε",␈α	this␈αλalgorithm␈α	forms␈αλtheir␈αλradix-␈ε(b␈ε"␈αλproduct
␈βα␈↓ αM␈ε%1␈↓ αr␈ε%2␈↓ βN␈ε+n␈↓ βn␈ε+b␈↓ ∧d␈ε%1␈↓ ¬ε␈ε%2␈↓ ¬←␈ε+m␈↓ επ␈ε+b
␈β!␈↓ ↓H␈ε"(␈↓ ↓T␈ε(w␈↓ ↓}␈ε(w␈↓ α.␈ε".␈αε.␈αε.␈↓ α↑␈ε(w␈↓ βD␈ε")␈↓ β←␈ε".␈α∞(The␈α	con␈α␈v␈α␈en␈α␈tional␈α	pencil-and-paper␈α	meth␈α↓od␈α	is␈α	based␈αλon␈α	form-
␈β-␈↓ ↓m␈ε%1␈↓ α↔␈ε%2␈↓ αx␈ε+m␈ε%␈α␈+␈ε+n␈↓ βP␈ε+b
␈βL␈↓ ↓H␈ε"ing␈α
the␈α
partial␈αproducts␈α
(␈↓ ∧O␈ε(u␈↓ ∧u␈ε(u␈↓ ¬ ␈ε".␈αε.␈αε.␈↓ ¬P␈ε(u␈↓ ¬y␈ε")␈ε6␈α¬α␈↓ ε2␈ε(v␈↓ ε]␈ε"|rst,␈αfor␈α
1␈ε6␈α
∀␈↓ λ0␈ε(j␈↓ λK␈ε6∀␈ε(␈α
m␈ε",␈αand␈α
then␈α
adding
␈βY␈↓ ∧d␈ε%1␈↓ ¬	␈ε%2␈↓ ¬e␈ε+n␈↓ εD␈ε+j
␈βw␈↓ ↓H␈ε"these␈α
products␈α∞together␈α∞with␈α∞appropriate␈α∞scale␈α∞factors;␈α∞but␈α∞in␈α∞a␈α∞computer␈α∞it␈α
is
␈β
#␈↓ ↓H␈ε"best␈α
to␈αdo␈αthe␈α
addition␈αconcurren␈α␈tly␈α
with␈αthe␈αm␈α␈ultiplication,␈αas␈α
described␈αin␈α
this
␈β
N␈↓ ↓H␈ε"algorithm.)
␈β∞¬␈↓ ↓D␈ε2M1.␈↓ α	␈ε"[Initialize.]␈α∩Set␈↓ β⎇␈ε(w␈↓ ∧←␈ε",␈↓ ∧t␈ε(w␈↓ ¬V␈ε",␈↓ ¬j␈ε".␈αε.␈αε.␈↓ ε~␈ε",␈↓ ε/␈ε(w␈↓ π∨␈ε"all␈α	to␈α
zero.␈α⊂Set␈↓ 	∞␈ε(j␈↓ 	)␈ε6␈ ␈ε(␈α
m␈ε"␈α␈.␈α∩(If␈↓ 
@␈ε(w␈↓ "␈ε",
␈β∞⊃␈↓ ∧⊗␈ε+m␈ε%+␈α␈1␈↓ ¬
␈ε+m␈ε%+␈α␈2␈↓ εH␈ε+m␈ε%+␈ε+␈α␈n␈↓ 
Y␈ε+m␈ε%+1
␈β∞0␈↓ α␈ε".␈αε.␈αε.␈↓ α<␈ε",␈↓ αR␈ε(w␈↓ βD␈ε"w␈α␈ere␈αn␈α↓ot␈αcleared␈αto␈αzero␈αin␈αthis␈αstep,␈αit␈αturns␈αout␈αthat␈αthe␈αsteps
␈β∞<␈↓ αl␈ε+m␈ε%␈α␈+␈ε+n
␈β∞[␈↓ α␈ε"belo␈α␈w␈αw␈α␈ould␈αset
␈β∂2␈↓ αS␈ε"(␈↓ α←␈ε(w␈↓ β∂␈ε".␈αε.␈αε.␈↓ β?␈ε(w␈↓ ∧%␈ε")␈↓ ∧I␈ε6␈ ␈ε"␈α
(␈↓ ¬β␈ε(u␈↓ ¬/␈ε".␈αε.␈αε.␈↓ ¬←␈ε(u␈↓ ελ␈ε")␈↓ ε*␈ε6α␈ε"␈αλ(␈↓ εb␈ε(v␈↓ π␈ε".␈αε.␈αε.␈↓ π;␈ε(v␈↓ πh␈ε")␈↓ λ␈ε"+␈αλ(␈↓ λC␈ε(w␈↓ 	+␈ε".␈αε.␈αε.␈↓ 	[␈ε(w␈↓ 
A␈ε")␈↓ 
\␈ε".
␈β∂>␈↓ αx␈ε%1␈↓ βY␈ε+m␈ε%␈α␈+␈ε+n␈↓ ∧1␈ε+b␈↓ ¬_␈ε%1␈↓ ¬t␈ε+n␈↓ ε∀␈ε+b␈↓ εt␈ε%1␈↓ πL␈ε+m␈↓ πt␈ε+b␈↓ λ\␈ε+m␈ε%+␈α␈1␈↓ 	u␈ε+m␈ε%␈α␈+␈ε+n␈↓ 
M␈ε+b
␈β⊂	␈↓ α␈ε"This␈αm␈α↓ore␈αgeneral␈αoperation␈αis␈αsometimes␈αuseful.)
␈β⊂@␈↓ ↓D␈ε2M2.␈↓ α	␈ε"[Zero␈α⊂m␈α␈ultiplier?]␈α∨If␈↓ ∧`␈ε(v␈↓ ¬⊃␈ε"=␈α⊂0,␈α⊂set␈↓ ε,␈ε(w␈↓ εe␈ε6␈ ␈ε"␈α∂0␈α⊂and␈α∂go␈α⊂to␈α∂step␈α⊂M6.␈α∨(This␈α∂test
␈β⊂L␈↓ ∧r␈ε+j␈↓ εF␈ε+j
␈β⊂k␈↓ α␈ε"sa␈α␈v␈α␈es␈αa␈αgo␈α↓od␈αdeal␈αof␈αtime␈αif␈αthere␈αis␈αa␈αreasonable␈αchance␈αthat␈↓ 	Q␈ε(v␈↓ 	⎇␈ε"is␈αzero,␈αbut
␈β⊂w␈↓ 	c␈ε+j
␈β⊃⊗␈↓ α␈ε"otherwise␈α
it␈α
ma␈α␈y␈αbe␈α
omitted␈α
with␈α↓out␈α
a{ecting␈αthe␈α
v␈α}alidit␈α␈y␈α
of␈α
the␈α
algorithm.)
␈β∪(

␈β↓U␈↓ ↓H␈ε"254␈↓ 
b␈ε"4.3.1
␈β↓\␈↓ α=␈ε∞ARITH␈α↓MET␈α↓IC
␈βα→␈↓ ¬|␈ε=T␈α⎇able␈α
1
␈βαO␈↓ ∧=␈ε$MUL␈α}TIP␈α↓LIC␈α↓A␈α⎇TION␈α⊂O␈α␈F␈α⊂9␈α↓14␈α⊂BY␈α⊂84␈α↓.
␈βα⎇␈↓ β*␈∧α⎇β*(α␈↓ εo␈∧α⎇εo(α
␈βα␈␈↓ α3␈ε#S␈α␈tep␈↓ βd␈ε)i␈↓ ∧(␈ε)j␈↓ ∧n␈ε)u␈↓ ¬C␈ε)v␈↓ ε"␈ε)t␈↓ π&␈ε)w␈↓ λβ␈ε)w␈↓ λ`␈ε)w␈↓ 	=␈ε)w␈↓ 
~␈ε)w
␈ββ
␈↓ ¬α␈ε,i␈↓ ¬T␈ε,j␈↓ π>␈ε&1␈↓ λ≠␈ε&2␈↓ λx␈ε&3␈↓ 	U␈ε&4␈↓ 
2␈ε&5
␈ββ$␈↓ β*␈∧β$β*λα␈↓ εo␈∧β$εoλα
␈ββ+␈↓ β*␈∧β+β*(α␈↓ εo␈∧β+εo(α
␈ββ-␈↓ α<␈ε#M5␈↓ βa␈ε#3␈↓ ∧(␈ε#2␈↓ ∧u␈ε#4␈↓ ¬J␈ε#4␈↓ ε↔␈ε#16␈↓ π0␈ε)x␈↓ λ
␈ε)x␈↓ λk␈ε#0␈↓ 	H␈ε#0␈↓ 
%␈ε#6
␈ββS␈↓ β*␈∧βSβ*(α␈↓ εo␈∧βSεo(α
␈ββU␈↓ α<␈ε#M5␈↓ βa␈ε#2␈↓ ∧(␈ε#2␈↓ ∧u␈ε#1␈↓ ¬J␈ε#4␈↓ ε↔␈ε#05␈↓ π0␈ε)x␈↓ λ
␈ε)x␈↓ λk␈ε#0␈↓ 	H␈ε#5␈↓ 
%␈ε#6
␈ββ{␈↓ β*␈∧β{β*(α␈↓ εo␈∧β{εo(α
␈ββ⎇␈↓ α<␈ε#M5␈↓ βa␈ε#1␈↓ ∧(␈ε#2␈↓ ∧u␈ε#9␈↓ ¬J␈ε#4␈↓ ε↔␈ε#36␈↓ π0␈ε)x␈↓ λ
␈ε)x␈↓ λk␈ε#6␈↓ 	H␈ε#5␈↓ 
%␈ε#6
␈β∧"␈↓ β*␈∧∧"β*(α␈↓ εo␈∧∧"εo(α
␈β∧$␈↓ α<␈ε#M6␈↓ βa␈ε#0␈↓ ∧(␈ε#2␈↓ ∧u␈ε)x␈↓ ¬J␈ε#4␈↓ ε↔␈ε#36␈↓ π0␈ε)x␈↓ λ∞␈ε#3␈↓ λk␈ε#6␈↓ 	H␈ε#5␈↓ 
%␈ε#6
␈β∧J␈↓ β*␈∧∧Jβ*(α␈↓ εo␈∧∧Jεo(α
␈β∧L␈↓ α<␈ε#M5␈↓ βa␈ε#3␈↓ ∧(␈ε#1␈↓ ∧u␈ε#4␈↓ ¬J␈ε#8␈↓ ε↔␈ε#37␈↓ π0␈ε)x␈↓ λ∞␈ε#3␈↓ λk␈ε#6␈↓ 	H␈ε#7␈↓ 
%␈ε#6
␈β∧q␈↓ β*␈∧∧qβ*(α␈↓ εo␈∧∧qεo(α
␈β∧s␈↓ α<␈ε#M5␈↓ βa␈ε#2␈↓ ∧(␈ε#1␈↓ ∧u␈ε#1␈↓ ¬J␈ε#8␈↓ ε↔␈ε#17␈↓ π0␈ε)x␈↓ λ∞␈ε#3␈↓ λk␈ε#7␈↓ 	H␈ε#7␈↓ 
%␈ε#6
␈β¬→␈↓ β*␈∧¬→β*(α␈↓ εo␈∧¬→εo(α
␈β¬≠␈↓ α<␈ε#M5␈↓ βa␈ε#1␈↓ ∧(␈ε#1␈↓ ∧u␈ε#9␈↓ ¬J␈ε#8␈↓ ε↔␈ε#76␈↓ π0␈ε)x␈↓ λ∞␈ε#6␈↓ λk␈ε#7␈↓ 	H␈ε#7␈↓ 
%␈ε#6
␈β¬A␈↓ β*␈∧¬Aβ*(α␈↓ εo␈∧¬Aεo(α
␈β¬C␈↓ α<␈ε#M6␈↓ βa␈ε#0␈↓ ∧(␈ε#1␈↓ ∧u␈ε)x␈↓ ¬J␈ε#8␈↓ ε↔␈ε#76␈↓ π1␈ε#7␈↓ λ∞␈ε#6␈↓ λk␈ε#7␈↓ 	H␈ε#7␈↓ 
%␈ε#6
␈βε3␈↓ ↓D␈ε2M3.␈↓ α	␈ε"[Initialize␈ε(␈αi␈ε"␈α↓.]␈α→Set␈ε(␈αi␈ε6␈α
␈ ␈ε(␈α
n␈ε",␈↓ ¬∂␈ε(k␈↓ ¬-␈ε6␈ ␈ε"␈α
0.
␈βεf␈↓ ↓D␈ε2M4.␈↓ α	␈ε"[Multiply␈αand␈αadd.]␈α→Set␈ε(␈αt␈ε6␈α
␈ ␈↓ ¬V␈ε(u␈↓ ¬␈␈ε6α␈↓ ε*␈ε(v␈↓ εS␈ε"+␈↓ ε␈␈ε(w␈↓ πW␈ε"+␈↓ λβ␈ε(k␈↓ λ↔␈ε";␈αthen␈αset␈↓ 	7␈ε(w␈↓ 
∩␈ε6␈ ␈ε(␈α
t␈↓ 
S␈ε"mod␈↓ ≥␈ε(b
␈βεs␈↓ ¬k␈ε+i␈↓ ε<␈ε+j␈↓ π_␈ε+i␈ε%+␈↓ π@␈ε+j␈↓ 	Q␈ε+i␈ε%␈α␈+␈↓ 	y␈ε+j
␈βπ⊃␈↓ α␈ε"and␈↓ αR␈ε(k␈↓ αp␈ε6␈ ␈α
b␈ε(t␈ε"␈α↓/␈ε(b␈ε6c␈ε".␈α→(Here␈αthe␈α\␈↓ ¬<␈ε"carry"␈↓ ε+␈ε(k␈↓ εK␈ε"will␈α
alw␈α␈a␈α␈ys␈αbe␈αin␈αthe␈αrange␈α0␈ε6␈α
∀␈↓ 
G␈ε(k␈↓ 
e␈ε"<␈ε(␈α
b␈ε";
␈βπ=␈↓ α␈ε"see␈αbelo␈α␈w.)
␈βπp␈↓ ↓D␈ε2M5.␈↓ α	␈ε"[Lo␈α↓op␈αon␈ε(␈α
i␈ε".]␈α∀Decrease␈ε(␈α
i␈ε"␈αby␈αone.␈α∂No␈α␈w␈α
if␈ε(␈αi␈ε"␈α
>␈α
0,␈αgo␈α
back␈αto␈α
step␈αM4;␈α
otherwise
␈βλ≠␈↓ α␈ε"set␈↓ αD␈ε(w␈↓ αw␈ε6␈ ␈↓ β%␈ε(k␈↓ β9␈ε".
␈βλ'␈↓ α↑␈ε+j
␈βλN␈↓ ↓D␈ε2M6.␈↓ α	␈ε"[Lo␈α↓op␈α
on␈↓ β≥␈ε(j␈↓ β.␈ε".]␈α⊃Decrease␈↓ ∧d␈ε(j␈↓ ∧␈␈ε"by␈α	one.␈α⊂No␈α␈w␈α	if␈↓ εo␈ε(j␈↓ π
␈ε">␈α
0,␈α
go␈α	back␈α
to␈α	step␈α
M2;␈α
otherwise
␈βλy␈↓ α␈ε"the␈αalgorithm␈αterminates.
␈β	α␈↓ ¬F␈∧	α¬F≠∂
␈β	4␈↓ α␈ε"Algorithm␈α∂M␈α∞is␈α∂illustrated␈α∂in␈α∞T␈α⎇able␈α∂1,␈α∂assuming␈α∂that␈ε(␈α∞b␈ε"␈α∂=␈α∂10,␈α∂by␈α∞sh␈α↓o␈α␈wing
␈β	←␈↓ ↓H␈ε"the␈αstates␈αof␈αthe␈αcomputation␈αat␈αthe␈αbeginning␈αof␈α
steps␈αM5␈αand␈αM6.␈α⊂A␈αpro␈α↓of␈αof
␈β

␈↓ ↓H␈ε"Algorithm␈αM␈αappears␈αin␈αthe␈αansw␈α␈er␈αto␈αexercise␈α14.
␈β
6␈↓ α␈ε"The␈αt␈α␈w␈α␈o␈αinequalities
␈β
w␈↓ εα␈ε%2
␈β
}␈↓ ∧d␈ε"0␈ε6␈α
∀␈ε(␈α
t␈ε"␈α
<␈↓ ¬s␈ε(b␈↓ ε∪␈ε",␈↓ εk0␈ε6␈α
∀␈↓ π5␈ε(k␈↓ πS␈ε"<␈ε(␈α
b␈↓ α␈ε"(1)
␈βG␈↓ ↓H␈ε"are␈α
crucial␈α
for␈αan␈α
e}cien␈α␈t␈αimplemen␈α␈tation␈α
of␈α
this␈αalgorithm,␈α
since␈αthey␈α
poin␈α␈t␈α
out
␈βs␈↓ ↓H␈ε"h␈α↓o␈α␈w␈α
large␈αa␈α
register␈α
is␈α
needed␈α
for␈α
the␈α
computations.␈α∪These␈α
inequalities␈α
ma␈α␈y␈αbe
␈β≡␈↓ ↓H␈ε"pro␈α␈v␈α␈ed␈αby␈↓ αn␈ε"induction␈αas␈αthe␈αalgorithm␈αproceeds,␈αfor␈αif␈αw␈α␈e␈αha␈α␈v␈α␈e␈↓ 	∪␈ε(k␈↓ 	1␈ε"<␈ε(␈α
b␈ε"␈αat␈αthe␈αstart
␈βI␈↓ ↓H␈ε"of␈αstep␈αM4,␈αw␈α␈e␈αha␈α␈v␈α␈e
␈β
␈↓ 	g␈ε%2␈↓ ¬␈ε%2
␈β
∩␈↓ ↓T␈ε(u␈↓ ↓⎇␈ε6α␈↓ α)␈ε(v␈↓ αR␈ε"+␈↓ α}␈ε(w␈↓ βW␈ε"+␈↓ ∧β␈ε(k␈↓ ∧!␈ε6∀␈ε"␈α
(␈ε(b␈ε6␈αλ␈␈ε"␈αλ1)␈ε6␈αλα␈ε"␈αλ(␈ε(b␈ε6␈αλ␈␈ε"␈αλ1)␈αλ+␈αλ(␈ε(b␈ε6␈α	␈␈ε"␈αλ1)␈αλ+␈αλ(␈ε(b␈ε6␈αλ␈␈ε"␈αλ1)␈α
=␈↓ 	X␈ε(b␈↓ 
␈ε6␈␈ε"␈αλ1␈α
<␈↓ 
v␈ε(b␈↓ ⊗␈ε".
␈β
≡␈↓ ↓i␈ε+i␈↓ α;␈ε+j␈↓ β↔␈ε+i␈ε%+␈↓ β?␈ε+j
␈β
[␈↓ α␈ε"The␈α	follo␈α␈wing␈↓ ∧)␈ε"program␈α	sh␈α↓o␈α␈ws␈α	the␈αλconsiderations␈α	that␈αλare␈α	necessary␈αλwhen
␈β
]␈↓ βh␈ε5MIX
␈β∞ε␈↓ ↓H␈ε"Algorithm␈α
M␈αis␈α
implemen␈α␈ted␈αon␈α
a␈αcomputer.␈α⊂The␈α
coding␈αfor␈α
step␈αM4␈α
w␈α␈ould␈αbe␈α
a
␈β∞1␈↓ ↓H␈ε"little␈αsimpler␈αif␈αour␈αcomputer␈αhad␈αa␈α\m␈α␈ultiply-and-add"␈αinstruction,␈αor␈αif␈αit␈αhad
␈β∞\␈↓ ↓H␈ε"a␈αdouble-length␈αaccum␈α␈ulator␈αfor␈αaddition.
␈β∂↔␈↓ ↓H␈ε2Program␈α
M.␈ε"␈α	(␈ε/Multiplication␈α
of␈α
n␈α↓onnegativ␈α␈e␈α
in␈α␈tegers␈↓ πk␈ε")␈ε2.␈ε"␈α∩This␈α
program␈α
is␈α	analogous
␈β∂B␈↓ ↓H␈ε"to␈αProgram␈αA␈↓ β"␈ε".␈↓ β<␈ε"rI␈↓ βV␈ε"1␈ε6␈α
⊃␈ε(␈α
i␈ε",␈↓ ∧B␈ε"rI␈↓ ∧\␈ε"2␈ε6␈α
⊃␈↓ ¬&␈ε(j␈↓ ¬7␈ε",␈↓ ¬M␈ε"rI␈↓ ¬g␈ε"3␈ε6␈α
⊃␈ε(␈α
i␈ε"␈α	+␈↓ εr␈ε(j␈↓ πβ␈ε",␈↓ 	>␈ε6⊃␈↓ 	l␈ε(k␈↓ 
␈ε".
␈β∂D␈↓ π→␈ε5CO␈α␈NTENTS(CAR␈α␈RY)
␈β∂|␈↓ ↓Z␈ε)0␈α␈1␈↓ αU␈ε5ENT1␈↓ β3␈ε5N␈↓ ∧o␈ε#1␈↓ ¬k␈ε0M1␈α␈.␈α∂Initialize.
␈β⊂≠␈↓ ¬k␈∧⊂≠¬kα↓N
␈β⊂#␈↓ ↓Z␈ε)0␈α␈2␈↓ αU␈ε5JOV␈↓ β3␈ε5OFLO␈↓ ∧o␈ε#1␈↓ ¬k␈ε#Ensu␈α␈re␈αo␈α␈v␈α}er⎇o␈α}w␈αi␈α↓s␈αo␈α␈{.
␈β⊂K␈↓ ↓Z␈ε)0␈α␈3␈↓ αU␈ε5STZ␈↓ β3␈ε5W+M,1␈↓ ∧g␈ε)N␈↓ ¬k␈ε)w␈↓ εI␈ε7␈ ␈ε#␈α
0.
␈β⊂V␈↓ εβ␈ε,m␈ε&+␈ε,i
␈β⊂r␈↓ ↓Z␈ε)0␈α␈4␈↓ αU␈ε5DEC1␈↓ β3␈ε51␈↓ ∧g␈ε)N
␈β⊃~␈↓ ↓Z␈ε)0␈α␈5␈↓ αU␈ε5J1P␈↓ β3␈ε5*-2␈↓ ∧g␈ε)N␈↓ ¬k␈ε#Rep␈α␈eat␈αfo␈α␈r␈ε)␈αn␈ε7␈α
∃␈ε)␈α
i␈ε#␈α	>␈α	0.
␈β∪(

␈β↓U␈↓ ↓H␈ε"4.3.1␈↓ 
v␈ε"255
␈β↓\␈↓ ε[␈ε∞T␈α↓HE␈α
CL␈α↓AS␈α␈SICA␈α↓L␈α
AL␈α␈G␈α↓ORITH␈α↓MS
␈βα&␈↓ ↓Z␈ε)0␈α␈6␈↓ αU␈ε5ENT2␈↓ β3␈ε5M␈↓ ∧o␈ε#1␈↓ ¬k␈ε)j␈↓ ε∧␈ε7␈ ␈ε)␈α	m␈ε#.
␈βαN␈↓ ↓Z␈ε)0␈α␈7␈↓ α≤␈ε51H␈↓ αU␈ε5LDX␈↓ β3␈ε5V,2␈↓ ∧d␈ε)M␈↓ ¬k␈ε0M2␈α␈.␈α∂Z␈α↓e␈α␈ro␈αm␈α␈u␈α␈l␈α↓ti␈↓ πJ␈ε0p␈↓ π\␈ε0l␈α↓ier?
␈βαm␈↓ ¬k␈∧αm¬kα↓←␈↓ πR␈∧αmπRαG
␈βαu␈↓ ↓Z␈ε)0␈α␈8␈↓ αU␈ε5JXZ␈↓ β3␈ε58F␈↓ ∧d␈ε)M␈↓ ¬k␈ε#If␈↓ ε␈ε)v␈↓ ε4␈ε#=␈α	0,␈αset␈↓ π7␈ε)w␈↓ πf␈ε7␈ ␈ε#␈α	0␈αan␈α␈d␈αgo␈α
to␈αM6␈α␈.
␈ββ↓␈↓ ε≥␈ε,j␈↓ πO␈ε,j
␈ββ≥␈↓ ↓Z␈ε)0␈α␈9␈↓ αU␈ε5ENT1␈↓ β3␈ε5N␈↓ ∧@␈ε)M␈↓ ∧m␈ε7␈␈↓ ¬⊗␈ε)Z␈↓ ¬k␈ε0M3␈α␈.␈α∂Initialize␈αi.
␈ββ<␈↓ ¬k␈∧β<¬kα↓b
␈ββD␈↓ ↓Z␈ε)1␈α␈0␈↓ αU␈ε5ENT3␈↓ β3␈ε5N,2␈↓ ∧@␈ε)M␈↓ ∧m␈ε7␈␈↓ ¬⊗␈ε)Z␈↓ ¬k␈ε)i␈ε7␈α	␈ ␈ε)␈α
n␈ε#,␈α(␈ε)i␈ε#␈αλ+␈↓ π~␈ε)j␈↓ π*␈ε#)␈ε7␈α	␈ ␈ε#␈α
(␈ε)n␈ε#␈αλ+␈↓ λ8␈ε)j␈↓ λH␈ε#).
␈ββl␈↓ ↓Z␈ε)1␈α␈1␈↓ αU␈ε5ENTX␈↓ β3␈ε50␈↓ ∧@␈ε)M␈↓ ∧m␈ε7␈␈↓ ¬⊗␈ε)Z␈↓ ¬k␈ε)k␈↓ επ␈ε7␈ ␈ε#␈α	0.
␈β∧∀␈↓ ↓Z␈ε)1␈α␈2␈↓ α≤␈ε52H␈↓ αU␈ε5STX␈↓ β3␈ε5CARRY␈↓ ∧%␈ε#(␈↓ ∧0␈ε)M␈↓ ∧]␈ε7␈␈↓ ¬ε␈ε)Z␈↓ ¬∨␈ε#)␈↓ ¬*␈ε)N␈↓ ¬k␈ε0M4␈α␈.␈α∂Mu␈α␈l␈α↓ti␈↓ π↓␈ε0p␈↓ π∪␈ε0l␈↓ π≥␈ε0y␈↓ π9␈ε0an␈α␈d␈αad␈α␈d.
␈β∧3␈↓ ¬k␈∧∧3¬kα↓⊗␈↓ π	␈∧∧3π	α_␈↓ π'␈∧∧3π'α↓∩
␈β∧;␈↓ ↓Z␈ε)1␈α␈3␈↓ αU␈ε5LDA␈↓ β3␈ε5U,1␈↓ ∧%␈ε#(␈↓ ∧0␈ε)M␈↓ ∧]␈ε7␈␈↓ ¬ε␈ε)Z␈↓ ¬∨␈ε#)␈↓ ¬*␈ε)N
␈β∧c␈↓ ↓Z␈ε)1␈α␈4␈↓ αU␈ε5MUL␈↓ β3␈ε5V,2␈↓ ∧%␈ε#(␈↓ ∧0␈ε)M␈↓ ∧]␈ε7␈␈↓ ¬ε␈ε)Z␈↓ ¬∨␈ε#)␈↓ ¬*␈ε)N␈↓ ¬k␈ε#rAX␈↓ ε1␈ε7␈ ␈↓ ε\␈ε)u␈↓ πα␈ε7α␈↓ π+␈ε)v␈↓ πI␈ε#.
␈β∧n␈↓ εo␈ε,i␈↓ π;␈ε,j
␈β¬
␈↓ ↓Z␈ε)1␈α␈5␈↓ αU␈ε5SLC␈↓ β3␈ε55␈↓ ∧%␈ε#(␈↓ ∧0␈ε)M␈↓ ∧]␈ε7␈␈↓ ¬ε␈ε)Z␈↓ ¬∨␈ε#)␈↓ ¬*␈ε)N␈↓ ¬k␈ε#In␈α␈te␈α␈rcha␈α␈ng␈α␈e␈↓ π∨␈ε#rA␈↓ πN␈ε7$␈↓ πx␈ε)r␈↓ λπ␈ε)X␈↓ λ&␈ε#.
␈β¬2␈↓ ↓Z␈ε)1␈α␈6␈↓ αU␈ε5ADD␈↓ β3␈ε5W,3␈↓ ∧%␈ε#(␈↓ ∧0␈ε)M␈↓ ∧]␈ε7␈␈↓ ¬ε␈ε)Z␈↓ ¬∨␈ε#)␈↓ ¬*␈ε)N␈↓ ¬k␈ε#Add␈↓ ε3␈ε)w␈↓ πλ␈ε#to␈αlo␈α␈w␈α␈er␈αh␈α␈alf.
␈β¬>␈↓ εK␈ε,i␈ε&+␈↓ εo␈ε,j
␈β¬Z␈↓ ↓Z␈ε)1␈α␈7␈↓ αU␈ε5JNOV␈↓ β3␈ε5*+2␈↓ ∧%␈ε#(␈↓ ∧0␈ε)M␈↓ ∧]␈ε7␈␈↓ ¬ε␈ε)Z␈↓ ¬∨␈ε#)␈↓ ¬*␈ε)N␈↓ ¬k␈ε#Did␈αo␈α␈v␈α}er⎇␈α␈o␈α␈w␈αoccu␈α␈r?
␈βε↓␈↓ ↓Z␈ε)1␈α␈8␈↓ αU␈ε5INCX␈↓ β3␈ε51␈↓ ∧g␈ε)K␈↓ ¬k␈ε#If␈αso,␈αcarry␈α
1␈αin␈α␈to␈αu␈α␈pp␈α␈er␈αh␈α␈alf.
␈βε)␈↓ ↓Z␈ε)1␈α␈9␈↓ αU␈ε5ADD␈↓ β3␈ε5CARRY␈↓ ∧%␈ε#(␈↓ ∧0␈ε)M␈↓ ∧]␈ε7␈␈↓ ¬ε␈ε)Z␈↓ ¬∨␈ε#)␈↓ ¬*␈ε)N␈↓ ¬k␈ε#Add␈↓ ε3␈ε)k␈↓ εQ␈ε#to␈α
l␈α↓o␈α}we␈α␈r␈αhalf.
␈βεP␈↓ ↓Z␈ε)2␈α␈0␈↓ αU␈ε5JNOV␈↓ β3␈ε5*+2␈↓ ∧%␈ε#(␈↓ ∧0␈ε)M␈↓ ∧]␈ε7␈␈↓ ¬ε␈ε)Z␈↓ ¬∨␈ε#)␈↓ ¬*␈ε)N␈↓ ¬k␈ε#Did␈αo␈α␈v␈α}er⎇␈α␈o␈α␈w␈αoccu␈α␈r?
␈βεr␈↓ ¬β␈ε:0
␈βεx␈↓ ↓Z␈ε)2␈α␈1␈↓ αU␈ε5INCX␈↓ β3␈ε51␈↓ ∧c␈ε)K␈↓ ¬k␈ε#If␈αso,␈αcarry␈α
1␈αin␈α␈to␈αu␈α␈pp␈α␈er␈αh␈α␈alf.
␈βπ ␈↓ ↓Z␈ε)2␈α␈2␈↓ αU␈ε5STA␈↓ β3␈ε5W,3␈↓ ∧%␈ε#(␈↓ ∧0␈ε)M␈↓ ∧]␈ε7␈␈↓ ¬ε␈ε)Z␈↓ ¬∨␈ε#)␈↓ ¬*␈ε)N␈↓ ¬k␈ε)w␈↓ ε>␈ε7␈ ␈ε)␈α
t␈↓ ε{␈ε#m␈α␈od␈↓ π?␈ε)b␈ε#.
␈βπ+␈↓ εβ␈ε,i␈ε&+␈↓ ε'␈ε,j
␈βπG␈↓ ↓Z␈ε)2␈α␈3␈↓ αU␈ε5DEC1␈↓ β3␈ε51␈↓ ∧%␈ε#(␈↓ ∧0␈ε)M␈↓ ∧]␈ε7␈␈↓ ¬ε␈ε)Z␈↓ ¬∨␈ε#)␈↓ ¬*␈ε)N␈↓ ¬k␈ε0M5␈α␈.␈α∂Lo␈α↓o␈↓ εj␈ε0p␈↓ ππ␈ε0on␈ε)␈αi␈ε0␈α␈.
␈βπg␈↓ ¬k␈∧πg¬kα␈␈↓ εq␈∧πgεqαZ
␈βπo␈↓ ↓Z␈ε)2␈α␈4␈↓ αU␈ε5DEC3␈↓ β3␈ε51␈↓ ∧%␈ε#(␈↓ ∧0␈ε)M␈↓ ∧]␈ε7␈␈↓ ¬ε␈ε)Z␈↓ ¬∨␈ε#)␈↓ ¬*␈ε)N␈↓ ¬k␈ε#Decre␈α␈ase␈ε)␈αi␈ε#␈αa␈α␈nd␈α(␈ε)i␈ε#␈απ+␈↓ λ∩␈ε)j␈↓ λ"␈ε#)␈αby␈α
1.
␈βλ⊗␈↓ ↓Z␈ε)2␈α␈5␈↓ αU␈ε5J1P␈↓ β3␈ε52B␈↓ ∧%␈ε#(␈↓ ∧0␈ε)M␈↓ ∧]␈ε7␈␈↓ ¬ε␈ε)Z␈↓ ¬∨␈ε#)␈↓ ¬*␈ε)N␈↓ ¬k␈ε#Back␈α
to␈αM4␈α
i␈α↓f␈ε)␈αi␈ε#␈α	>␈α	0;␈↓ λ$␈ε#rX␈↓ λS␈ε#=␈ε7␈α	b␈ε)t␈ε#␈α↓/␈ε)␈α␈b␈ε7␈α↓c␈ε#␈α␈.
␈βλ>␈↓ ↓Z␈ε)2␈α␈6␈↓ α≤␈ε58H␈↓ αU␈ε5STX␈↓ β3␈ε5W,2␈↓ ∧d␈ε)M␈↓ ¬k␈ε#S␈α␈et␈↓ ε$␈ε)w␈↓ εS␈ε7␈ ␈↓ ε}␈ε)k␈↓ π⊂␈ε#.
␈βλJ␈↓ ε<␈ε,j
␈βλf␈↓ ↓Z␈ε)2␈α␈7␈↓ αU␈ε5DEC2␈↓ β3␈ε51␈↓ ∧d␈ε)M␈↓ ¬k␈ε0M6␈α␈.␈α∂Lo␈α↓o␈↓ εj␈ε0p␈↓ ππ␈ε0on␈↓ π6␈ε)j␈↓ πE␈ε0.
␈β	¬␈↓ ¬k␈∧	¬¬kα␈␈↓ εq␈∧	¬εqαE␈↓ π>␈∧	¬π>α⊃
␈β	
␈↓ ↓Z␈ε)2␈α␈8␈↓ αU␈ε5J2P␈↓ β3␈ε51B␈↓ ∧d␈ε)M␈↓ ¬k␈ε#Rep␈α␈eat␈αu␈α␈n␈α␈til␈↓ π,␈ε)j␈↓ πE␈ε#=␈α
0␈α␈.
␈β	∀␈↓ λ/␈∧	∀λ/≠∂
␈β	R␈↓ α␈ε"The␈αexecution␈αtime␈αof␈α
Program␈αM␈αdepends␈αon␈αthe␈αn␈α␈um␈α␈ber␈αof␈αplaces,␈↓ 
P␈ε(M␈↓ 
x␈ε",␈αin
␈β	⎇␈↓ ↓H␈ε"the␈α∂m␈α␈ultiplier␈↓ β0␈ε(v␈↓ βC␈ε";␈α⊃the␈α∂n␈α␈um␈α␈ber␈α∂of␈α∞places,␈↓ εH␈ε(N␈↓ εk␈ε",␈α⊂in␈α∂the␈α∂m␈α␈ultiplicand␈ε(␈α∞u␈ε";␈α⊃the␈α∞n␈α␈um␈α␈ber
␈β
"␈↓ 	j␈ε90
␈β
(␈↓ ↓H␈ε"of␈αzeros,␈↓ αW␈ε(Z␈↓ αr␈ε",␈α
in␈αthe␈α
m␈α␈ultiplier;␈α
and␈αthe␈α
n␈α␈um␈α␈ber␈αof␈α
carries,␈↓ λQ␈ε(K␈↓ 	␈ε"and␈↓ 	G␈ε(K␈↓ 	s␈ε",␈α
that␈αoccur
␈β
S␈↓ ↓H␈ε"during␈α	the␈αλaddition␈α	to␈α	the␈α	lo␈α␈w␈α␈er␈α	half␈α	of␈α	the␈α	product␈α	in␈α	the␈α	computation␈αλof␈ε(␈α	t␈ε"␈α↓.␈α∂If␈αλw␈α␈e
␈β
y␈↓ ∧␈␈ε90
␈β
␈␈↓ ↓H␈ε"appro␈α␈ximate␈α
both␈↓ βj␈ε(K␈↓ ∧↔␈ε"and␈↓ ∧\␈ε(K␈↓ ¬∪␈ε"by␈αthe␈αreasonable␈α
(alth␈α↓ough␈αsomewhat␈α
pessimistic)
␈β%␈↓ α:␈ε%1
␈β*␈↓ ↓H␈ε"v␈α}alues␈↓ αN␈ε"(␈↓ αZ␈ε(M␈↓ β
␈ε6␈␈↓ β;␈ε(Z␈↓ βV␈ε")␈↓ βb␈ε(N␈↓ ∧¬␈ε",␈α⊃w␈α␈e␈α⊂|nd␈α∂that␈α⊂the␈α⊂total␈α∂running␈α⊂time␈α⊂comes␈α⊂to␈α∂28␈↓ 
2␈ε(M␈↓ 
[␈ε(N␈↓ λ␈ε"+
␈β;␈↓ α:␈ε%2
␈β>␈↓ α:␈∧>α:α⊂
␈βU␈↓ ↓H␈ε"10␈↓ ↓l␈ε(M␈↓ α~␈ε"+␈αε4␈↓ αV␈ε(N␈↓ α}␈ε"+␈αε3␈ε6␈αε␈␈↓ βi␈ε(Z␈↓ ∧¬␈ε"(28␈↓ ∧5␈ε(N␈↓ ∧]␈ε"+␈αε3)␈αcy␈α␈cles.␈α∂If␈αstep␈αM2␈αw␈α␈ere␈αdeleted,␈αthe␈αrunning␈α
time
␈β␈↓ ↓H␈ε"w␈α␈ould␈α
be␈α28␈↓ βα␈ε(M␈↓ β+␈ε(N␈↓ βS␈ε"+␈α¬7␈↓ ∧∞␈ε(M␈↓ ∧=␈ε"+␈α¬4␈↓ ∧x␈ε(N␈↓ ¬ ␈ε"+␈αε3␈α
cy␈α␈cles,␈αso␈αthis␈αstep␈α
is␈αn␈α↓ot␈αadv␈α}an␈α␈tageous␈α
unless
␈β+␈↓ ↓H␈ε"the␈α∞densit␈α␈y␈α
of␈α∞zero␈α∞positions␈α∞within␈α∞the␈α∞m␈α␈ultiplier␈α∞is␈↓ λ∃␈ε(Z␈↓ λ0␈ε"/␈↓ λB␈ε(M␈↓ λx␈ε">␈α
3/(28␈↓ 	⎇␈ε(N␈↓ 
*␈ε"+␈α	3).␈α∃If
␈βW␈↓ ↓H␈ε"the␈αm␈α␈ultiplier␈α
is␈αch␈α↓osen␈αcompletely␈αat␈αrandom,␈αthis␈αratio␈↓ λE␈ε(Z␈↓ λ`␈ε"/␈↓ λr␈ε(M␈↓ 	&␈ε"is␈αexpected␈αto␈α
be
␈β
α␈↓ ↓H␈ε"only␈αabout␈α1/␈ε(b␈ε",␈αwhich␈αis␈αextremely␈αsmall;␈αso␈αstep␈αM2␈αis␈αusually␈ε/␈αn␈α↓ot␈ε"␈αw␈α␈orth␈α␈while,
␈β
-␈↓ ↓H␈ε"unless␈ε(␈αb␈ε"␈αis␈αsmall.
␈β
Y␈↓ α␈ε"Algorithm␈α∂M␈α∂is␈α∂n␈α↓ot␈α∂the␈α∂fastest␈α∂w␈α␈a␈α␈y␈α∂to␈α⊂m␈α␈ultiply␈α∂when␈ε(␈α∂m␈ε"␈α∞and␈ε(␈α⊂n␈ε"␈α∞are␈α∂large,
␈β∞∧␈↓ ↓H␈ε"alth␈α↓ough␈α
it␈α
has␈α
the␈α
adv␈α}an␈α␈tage␈α
of␈α
simplicit␈α␈y.␈α∀Speedier␈α
meth␈α↓ods␈α
are␈α
discussed␈α
in
␈β∞/␈↓ ↓H␈ε"Section␈α∞4.3.3;␈α⊂ev␈α␈en␈α∂when␈ε(␈α∂m␈ε"␈α∞=␈ε(␈α∞n␈ε"␈α∞=␈α∂4,␈α∂it␈α∂is␈α∞possible␈α∂to␈α∂m␈α␈ultiply␈α∞n␈α␈um␈α␈bers␈α∂in␈α∞a
␈β∞[␈↓ ↓H␈ε"little␈αless␈αtime␈αthan␈αis␈αrequired␈αby␈αAlgorithm␈αM.
␈β∂∀␈↓ α␈ε"The␈α|nal␈α
algorithm␈αof␈α
concern␈αto␈α
us␈αin␈α
this␈αsection␈α
is␈αlong␈↓ 	~␈ε"division,␈αin␈α
which
␈β∂?␈↓ ↓H␈ε"w␈α␈e␈αw␈α␈an␈α␈t␈αto␈αdivide␈α(␈ε(n␈ε"␈απ+␈ε(␈απm␈ε"␈α␈)-place␈αin␈α␈tegers␈αby␈ε(␈αn␈ε"␈α␈-place␈αin␈α␈tegers.␈α⊂Here␈αthe␈αordinary
␈β∂j␈↓ ↓H␈ε"pencil-and-paper␈αmeth␈α↓od␈αin␈α␈v␈α␈olv␈α␈es␈α
a␈αcertain␈αam␈α↓oun␈α␈t␈α
of␈αguessw␈α␈ork␈αand␈αingen␈α␈uit␈α␈y
␈β⊂⊗␈↓ ↓H␈ε"on␈α
the␈α
part␈αof␈α
the␈αperson␈α
doing␈α
the␈αdivision;␈αw␈α␈e␈α
m␈α␈ust␈α
either␈αeliminate␈α
this␈α
guess-
␈β⊂A␈↓ ↓H␈ε"w␈α␈ork␈αfrom␈αthe␈αalgorithm␈αor␈αdev␈α␈elop␈αsome␈αtheory␈αto␈αexplain␈αit␈αm␈α↓ore␈αcarefully.
␈β⊂m␈↓ α␈ε"A␈α	m␈α↓omen␈α␈t's␈α
re⎇ection␈α	about␈α	the␈α
ordinary␈α	process␈α	of␈α
long␈α	division␈α	sh␈α↓o␈α␈ws␈α	that
␈β⊃_␈↓ ↓H␈ε"the␈α	general␈α
problem␈α
breaks␈α
do␈α␈wn␈α
in␈α␈to␈α	simpler␈α
steps,␈α
each␈α
of␈α
which␈α
is␈α
the␈α	division
␈β∪(

␈β↓U␈↓ ↓H␈ε"256␈↓ 
b␈ε"4.3.1
␈β↓\␈↓ α=␈ε∞ARITH␈α↓MET␈α↓IC
␈βαl␈↓ β ␈ε3Fig.␈α6␈α␈.␈ε#␈α⊗W␈α⎇an␈α␈te␈α␈d:␈αa␈α
w␈α␈a␈α}y␈α
to
␈ββ↔␈↓ β ␈ε#de␈α␈termine␈↓ ∧;␈ε)q␈↓ ∧X␈ε#rapid␈α␈l␈α↓y␈α␈.
␈β∧8␈↓ ↓H␈ε"of␈αan␈α(␈ε(n␈ε"␈αλ+␈αλ1)-place␈αn␈α␈um␈α␈ber␈ε(␈αu␈ε"␈αby␈αthe␈ε(␈αn␈ε"-place␈αdivisor␈↓ λπ␈ε(v␈↓ λ~␈ε",␈αwhere␈α0␈ε6␈α∀␈ε(␈α
u␈ε"/␈↓ 

␈ε(v␈↓ 
'␈ε"<␈ε(␈α
b␈ε";␈αthe
␈β∧d␈↓ ↓H␈ε"remainder␈↓ αp␈ε(r␈↓ β␈ε"a$er␈α
each␈αstep␈αis␈α
less␈αthan␈↓ ε2␈ε(v␈↓ εE␈ε",␈αso␈α
w␈α␈e␈αma␈α␈y␈αuse␈α
the␈αquan␈α␈tit␈α␈y␈↓ 
␈ε(r␈↓ 
≤␈ε(b␈ε"␈αε+␈↓ 
Z␈ε"(next
␈β¬∂␈↓ ↓H␈ε"place␈α
of␈α
dividend)␈α∞as␈α
the␈α
new␈ε(␈α∞u␈ε"␈α
in␈α
the␈α
succeeding␈α∞step.␈α∀F␈α⎇or␈α
example,␈α∞if␈α
w␈α␈e␈α
are
␈β¬:␈↓ ↓H␈ε"ask␈α␈ed␈αto␈αdivide␈α3142␈αby␈α47,␈αw␈α␈e␈α|rst␈αdivide␈α314␈αby␈α47,␈αgetting␈α6␈αand␈αa␈αremainder
␈β¬e␈↓ ↓H␈ε"of␈α32;␈α
then␈α
w␈α␈e␈αdivide␈α
322␈αby␈α
47,␈α
getting␈α6␈α
and␈α
a␈αremainder␈α
of␈α40;␈α
th␈α␈us␈α
w␈α␈e␈αha␈α␈v␈α␈e
␈βε⊂␈↓ ↓H␈ε"a␈αquotien␈α␈t␈α
of␈α66␈α
and␈αa␈α
remainder␈α
of␈α40.␈α∩It␈αis␈α
clear␈α
that␈αthis␈α
same␈αidea␈α
w␈α␈orks␈αin
␈βε<␈↓ ↓H␈ε"general,␈α
and␈α
so␈α
our␈α
search␈α
for␈α
an␈α
appropriate␈α
division␈α
algorithm␈α
reduces␈αto␈α
the
␈βεg␈↓ ↓H␈ε"follo␈α␈wing␈αproblem␈α(Fig.␈α6):
␈βπ.␈↓ ↓←␈ε/Let␈ε(␈α∩u␈ε"␈α∩=␈α∀(␈↓ β∩␈ε(u␈↓ β7␈ε(u␈↓ βc␈ε".␈αε.␈αε.␈↓ ∧∪␈ε(u␈↓ ∧<␈ε")␈↓ ∧h␈ε/and␈↓ ¬3␈ε(v␈↓ ¬Y␈ε"=␈α∪(␈↓ ε≤␈ε(v␈↓ ε?␈ε(v␈↓ εg␈ε".␈αε.␈αε.␈↓ π↔␈ε(v␈↓ π=␈ε")␈↓ πi␈ε/be␈α⊃n␈α↓onnegativ␈α␈e␈α∩in␈α␈tegers␈α⊃in
␈βπ:␈↓ β&␈ε%0␈↓ βL␈ε%1␈↓ ∧'␈ε+n␈↓ ∧H␈ε+b␈↓ ε.␈ε%1␈↓ εP␈ε%2␈↓ π(␈ε+n␈↓ πI␈ε+b
␈βπY␈↓ ↓←␈ε/radix-␈ε(b␈ε/␈α∞n␈α↓otation,␈α∂such␈α∞that␈ε(␈α∂u␈ε"␈α␈/␈↓ ¬C␈ε(v␈↓ ¬d␈ε"<␈ε(␈α∞b␈ε/.␈α⊗Find␈α∂an␈α∞algorithm␈α∞to␈α∞determine␈↓ 
P␈ε(q␈↓ 
q␈ε"=
␈βλ∧␈↓ ↓←␈ε6b␈ε(u␈ε"/␈↓ α∀␈ε(v␈↓ α'␈ε6c␈ε/.
␈βλO␈↓ ↓H␈ε"W␈α⎇e␈αma␈α␈y␈α
observ␈α␈e␈α
that␈αthe␈α
condition␈ε(␈α
u␈ε"/␈↓ ε(␈ε(v␈↓ εF␈ε"<␈ε(␈αb␈ε"␈α
is␈α
equiv␈α}alen␈α␈t␈αto␈α
the␈α
condition␈αthat
␈βλz␈↓ ↓H␈ε(u␈ε"␈α␈/␈ε(b␈ε"␈α<␈↓ α9␈ε(v␈↓ αL␈ε";␈α∞i.e.,␈ε6␈α
b␈ε(u␈ε"/␈ε(b␈ε6c␈ε"␈α<␈↓ ∧6␈ε(v␈↓ ∧I␈ε".␈α∪This␈α
is␈α
simply␈α
the␈α
condition␈α
that␈α
(␈↓ 	␈ε(u␈↓ 	1␈ε(u␈↓ 	]␈ε".␈αε.␈αε.␈↓ 

␈ε(u␈↓ 
b␈ε")␈↓ λ␈ε"<
␈β	ε␈↓ 	 ␈ε%0␈↓ 	F␈ε%1␈↓ 
!␈ε+n␈ε9␈␈ε%1␈↓ 
n␈ε+b
␈β	%␈↓ ↓H␈ε"(␈↓ ↓T␈ε(v␈↓ ↓v␈ε(v␈↓ α≡␈ε".␈αε.␈αε.␈↓ αN␈ε(v␈↓ αt␈ε")␈↓ β∞␈ε".␈α⊂F␈α⎇urtherm␈α↓ore,␈αif␈αw␈α␈e␈αwrite␈↓ ε4␈ε(r␈↓ εO␈ε"=␈ε(␈α
u␈ε6␈αε␈␈↓ πC␈ε(q␈↓ πV␈ε(v␈↓ πi␈ε",␈αthen␈↓ λO␈ε(q␈↓ λn␈ε"is␈αthe␈αunique␈αin␈α␈teger
␈β	1␈↓ ↓e␈ε%1␈↓ απ␈ε%2␈↓ α`␈ε+n␈↓ β␈ε+b
␈β	P␈↓ ↓H␈ε"such␈αthat␈α0␈ε6␈α
∀␈↓ β2␈ε(r␈↓ βL␈ε"<␈↓ βz␈ε(v␈↓ ∧
␈ε".
␈β	{␈↓ α␈ε"The␈α⊂m␈α↓ost␈α⊂obvious␈α⊂approach␈α⊂to␈α∂this␈α⊂problem␈α⊂is␈α⊂to␈α⊂mak␈α␈e␈α⊂a␈α⊂guess␈α∂about␈↓ ∂␈ε(q␈↓ "␈ε",
␈β
'␈↓ ↓H␈ε"based␈α⊂on␈α∂the␈α⊂m␈α↓ost␈α⊂signi|can␈α␈t␈α⊂digits␈α⊂of␈ε(␈α⊂u␈ε"␈α⊂and␈↓ π5␈ε(v␈↓ πH␈ε".␈α≤It␈α⊂isn't␈α⊂obvious␈α⊂that␈α⊂such␈α∂a
␈β
R␈↓ ↓H␈ε"meth␈α↓od␈αwill␈αbe␈αreliable␈αen␈α↓ough,␈αbut␈αit␈αis␈αw␈α␈orth␈αin␈α␈v␈α␈estigating;␈αlet␈αus␈αtherefore␈αset
␈β↔␈↓ ¬O␈ε↓∩␈↓ ¬k␈ε↓⊗␈↓ π⊃␈ε↓↔␈↓ λ∩␈ε↓∪
␈β_␈↓ ¬␈␈ε(u␈↓ ε$␈ε(b␈ε"␈α	+␈↓ εh␈ε(u
␈β$␈↓ ε∀␈ε%0␈↓ ε|␈ε%1
␈β0␈↓ ∧B␈ε"∂␈↓ ∧B␈ε(q␈↓ ∧←␈ε"=␈↓ ¬
␈ε"min␈↓ π'␈ε",␈ε(␈αb␈ε6␈αλ␈␈ε"␈αλ1␈↓ λ(␈ε".␈↓ α␈ε"(2)
␈βD␈↓ ¬␈␈∧D¬␈α↓∂
␈βJ␈↓ ε5␈ε(v
␈βV␈↓ εF␈ε%1
␈β∞␈↓ ↓H␈ε"This␈α∞form␈α␈ula␈α
sa␈α␈ys␈↓ βp␈ε(q␈↓ βq␈ε"∂␈↓ ∧⊃␈ε"is␈α∞obtained␈α∞by␈α∞dividing␈α∞the␈α∞t␈α␈w␈α␈o␈α∞leading␈α∞digits␈α∞of␈ε(␈α∞u␈ε"␈α∞by␈α
the
␈β9␈↓ ↓H␈ε"leading␈αdigit␈αof␈↓ βB␈ε(v␈↓ βU␈ε";␈αand␈αif␈αthe␈αresult␈αis␈ε(␈αb␈ε"␈αor␈αm␈α↓ore␈αw␈α␈e␈αcan␈αreplace␈αit␈αby␈α(␈ε(b␈ε6␈αλ␈␈ε"␈αλ1).
␈βe␈↓ α␈ε"It␈α⊃is␈α⊂a␈α⊃remark␈α}able␈α⊂fact,␈α∩which␈α⊃w␈α␈e␈α⊂will␈α⊃n␈α↓o␈α␈w␈α⊃in␈α␈v␈α␈estigate,␈α⊃that␈α⊃this␈α⊃v␈α}alue␈↓ →␈ε(q␈↓ ~␈ε"∂
␈β
⊂␈↓ ↓H␈ε"is␈α∞alw␈α␈a␈α␈ys␈α∂a␈α∂v␈α␈ery␈α∞go␈α↓od␈α∂appro␈α␈ximation␈α∂to␈α∞the␈α∂desired␈α∞answ␈α␈er␈↓ 		␈ε(q␈↓ 	≤␈ε",␈α⊂so␈α∞long␈α∂as␈↓ 
c␈ε(v␈↓ ∀␈ε"is
␈β
≤␈↓ 
u␈ε%1
␈β
;␈↓ ↓H␈ε"reasonably␈αlarge.␈α⊂In␈αorder␈αto␈αanalyze␈αh␈α↓o␈α␈w␈αclose␈↓ π8␈ε"∂␈↓ π8␈ε(q␈↓ πW␈ε"comes␈αto␈↓ λl␈ε(q␈↓ λ␈␈ε",␈αw␈α␈e␈αwill␈α|rst␈αpro␈α␈v␈α␈e
␈β
f␈↓ ↓H␈ε"that␈↓ α⊗␈ε"∂␈↓ α⊗␈ε(q␈↓ α5␈ε"is␈αnev␈α␈er␈αto␈α↓o␈αsmall.
␈β∞"␈↓ ↓H␈ε2Theorem␈αA.␈ε/␈α→In␈αthe␈αn␈α↓otation␈αabo␈α␈v␈α␈e,␈↓ επ␈ε"∂␈↓ επ␈ε(q␈↓ ε$␈ε6∃␈↓ εR␈ε(q␈↓ εe␈ε/.
␈β∞]␈↓ ↓H␈ε/Pro␈α↓of.␈ε"␈α~Since␈↓ β!␈ε(q␈↓ β@␈ε6∀␈ε(␈α
b␈ε6␈α	␈␈ε"␈α	1,␈αthe␈α
theorem␈αis␈α
certainly␈α
true␈αif␈↓ λP␈ε"∂␈↓ λP␈ε(q␈↓ λn␈ε"=␈ε(␈αb␈ε6␈αλ␈␈ε"␈α	1.␈α⊃Otherwise
␈β∂λ␈↓ ↓H␈ε"w␈α␈e␈αha␈α␈v␈α␈e␈↓ αP␈ε"∂␈↓ αP␈ε(q␈↓ αm␈ε"=␈ε6␈α
b␈ε"(␈↓ β5␈ε(u␈↓ βZ␈ε(b␈ε"␈α	+␈↓ ∧≡␈ε(u␈↓ ∧C␈ε")/␈↓ ∧a␈ε(v␈↓ ¬β␈ε6c␈ε",␈αhence␈↓ ε␈ε(q␈↓ ε␈ε"∂␈↓ ε∨␈ε(v␈↓ εK␈ε6∃␈↓ εy␈ε(u␈↓ π≡␈ε(b␈ε"␈α	+␈↓ πb␈ε(u␈↓ λ∂␈ε6␈␈↓ λ;␈ε(v␈↓ λe␈ε"+␈αλ1.␈α⊂It␈αfollo␈α␈ws␈αthat
␈β∂∃␈↓ βJ␈ε%0␈↓ ∧2␈ε%1␈↓ ∧s␈ε%1␈↓ ε0␈ε%1␈↓ π∞␈ε%0␈↓ πv␈ε%1␈↓ λM␈ε%1
␈β∂L␈↓ β|␈ε+n␈ε9␈␈ε%␈α␈1␈↓ ¬*␈ε+n
␈β∂S␈↓ ↓H␈ε(u␈ε6␈αλ␈␈↓ α⊃␈ε"∂␈↓ α⊃␈ε(q␈↓ α$␈ε(v␈↓ αA␈ε6∀␈ε(␈α
u␈ε6␈απ␈␈↓ β7␈ε(q␈↓ β8␈ε"∂␈↓ βK␈ε(v␈↓ βm␈ε(b␈↓ ∧G␈ε6∀␈↓ ∧u␈ε(u␈↓ ¬≠␈ε(b␈↓ ¬F␈ε"+␈↓ ¬r␈ε6↓␈αε↓␈αε↓␈↓ ε$␈ε"+␈↓ εP␈ε(u
␈β∂`␈↓ β\␈ε%1␈↓ ¬
␈ε%0␈↓ εe␈ε+n
␈β⊂	␈↓ ¬z␈ε+n␈↓ εw␈ε+n␈ε9␈␈ε%␈α␈1␈↓ λ≥␈ε+n␈ε9␈␈ε%1␈↓ 	"␈ε+n␈ε9␈α␈␈␈ε%1
␈β⊂⊃␈↓ ¬
␈ε6␈␈ε"␈αλ(␈↓ ¬E␈ε(u␈↓ ¬k␈ε(b␈↓ ε⊗␈ε"+␈↓ εB␈ε(u␈↓ εh␈ε(b␈↓ π@␈ε6␈␈↓ πl␈ε(v␈↓ λ∞␈ε(b␈↓ λf␈ε"+␈↓ 	∩␈ε(b␈↓ 	c␈ε")
␈β⊂≥␈↓ ¬Z␈ε%0␈↓ εW␈ε%1␈↓ π⎇␈ε%1
␈β⊂M␈↓ ¬*␈ε+n␈ε9␈␈ε%␈α␈2␈↓ πQ␈ε+n␈ε9␈␈ε%␈α␈1␈↓ λl␈ε+n␈ε9␈α␈␈␈ε%1␈↓ 
⊗␈ε+n␈ε9␈␈ε%␈α␈1
␈β⊂U␈↓ ∧G␈ε"=␈↓ ∧u␈ε(u␈↓ ¬≠␈ε(b␈↓ ¬m␈ε"+␈↓ ε→␈ε6↓␈αε↓␈αε↓␈↓ εK␈ε"+␈↓ εq␈ε(u␈↓ π≤␈ε6␈␈↓ πB␈ε(b␈↓ λ∀␈ε"+␈↓ λ:␈ε(v␈↓ λ\␈ε(b␈↓ 	7␈ε"<␈↓ 	e␈ε(v␈↓ 
π␈ε(b␈↓ 
a␈ε6∀␈↓ ∂␈ε(v␈↓ "␈ε".
␈β⊂a␈↓ ¬
␈ε%2␈↓ πε␈ε+n␈↓ λL␈ε%1␈↓ 	v␈ε%1
␈β⊃_␈↓ ↓H␈ε"Since␈ε(␈αu␈ε6␈απ␈␈↓ αn␈ε(q␈↓ αo␈ε"∂␈↓ βα␈ε(v␈↓ β≡␈ε"<␈↓ βL␈ε(v␈↓ β←␈ε",␈αw␈α␈e␈αm␈α␈ust␈αha␈α␈v␈α␈e␈↓ ¬V␈ε(q␈↓ ¬W␈ε"∂␈↓ ¬t␈ε6∃␈↓ ε"␈ε(q␈↓ ε5␈ε".
␈β⊃!␈↓ εf␈∧⊃!εf≠∂
␈β∪(

␈β↓U␈↓ ↓H␈ε"4.3.1␈↓ 
v␈ε"257
␈β↓\␈↓ ε[␈ε∞T␈α↓HE␈α
CL␈α↓AS␈α␈SICA␈α↓L␈α
AL␈α␈G␈α↓ORITH␈α↓MS
␈βα$␈↓ α␈ε"W␈α⎇e␈α
will␈α
n␈α↓o␈α␈w␈α
pro␈α␈v␈α␈e␈α
that␈↓ ¬
␈ε(q␈↓ ¬∞␈ε"∂␈↓ ¬-␈ε"cann␈α↓ot␈α
be␈α
m␈α␈uch␈α
larger␈α
than␈↓ λt␈ε(q␈↓ 	∀␈ε"in␈α
practical␈α
situa-
␈βαO␈↓ ↓H␈ε"tions.␈α⊂Assume␈αthat␈↓ ∧␈ε"∂␈↓ ∧␈ε(q␈↓ ∧≥␈ε6∃␈↓ ∧K␈ε(q␈↓ ∧f␈ε"+␈αλ3.␈α⊂W␈α⎇e␈αha␈α␈v␈α␈e
␈ββ∃␈↓ ¬8␈ε+n␈↓ ε5␈ε+n␈ε9␈␈ε%1
␈ββ≠␈↓ β5␈ε(u␈↓ β[␈ε(b␈ε"␈αλ+␈↓ ∧≡␈ε(u␈↓ ¬∧␈ε(u␈↓ ¬)␈ε(b␈↓ ¬U␈ε"+␈↓ ε↓␈ε(u␈↓ ε&␈ε(b␈↓ πe␈ε(u␈↓ 	*␈ε(u
␈ββ(␈↓ βJ␈ε%0␈↓ ∧3␈ε%1␈↓ ¬_␈ε%0␈↓ ε∃␈ε%1
␈ββ3␈↓ αf␈ε(q␈↓ αg␈ε"∂␈↓ ββ␈ε6∀␈↓ ∧R␈ε"=␈↓ π∧␈ε6∀␈↓ λ7␈ε"<␈↓ 
∧␈ε".
␈ββG␈↓ β5␈∧βGβ5α↓∂␈↓ ¬∧␈∧βG¬∧α↓s␈↓ π6␈∧βGπ6αs␈↓ λi␈∧βGλiα↓_
␈ββI␈↓ ¬u␈ε+n␈ε9␈␈ε%␈α␈1␈↓ πh␈ε+n␈ε9␈α␈␈␈ε%1␈↓ 	?␈ε+n␈ε9␈␈ε%␈α␈1
␈ββM␈↓ βk␈ε(v␈↓ ¬D␈ε(v␈↓ ¬f␈ε(b␈↓ π6␈ε(v␈↓ πY␈ε(b␈↓ λi␈ε(v␈↓ 	∧␈ε6␈␈↓ 	0␈ε(b
␈ββY␈↓ β⎇␈ε%1␈↓ ¬U␈ε%1␈↓ πH␈ε%1
␈ββz␈↓ ↓H␈ε↓␈␈↓ 
∂␈ε↓↓
␈β∧∩␈↓ βJ␈ε+n␈ε9␈␈ε%␈α␈1
␈β∧_␈↓ ↓V␈ε"The␈αcase␈↓ αm␈ε(v␈↓ β␈ε"=␈↓ β;␈ε(b␈↓ ∧_␈ε"is␈α
impossible,␈α
for␈α
if␈↓ εR␈ε(v␈↓ εp␈ε"=␈α(100␈↓ πg␈ε".␈αε.␈αε.␈↓ λ↔␈ε"0␈↓ λ)␈ε")␈↓ λQ␈ε"then␈↓ 	$␈ε(q␈↓ 	B␈ε"=␈↓ 	q␈ε(q␈↓ 	r␈ε"∂␈↓ 
¬␈ε".␈↓ 
)␈ε"F␈α⎇urther-
␈β∧%␈↓ λ5␈ε+b
␈β∧D␈↓ ↓H␈ε"m␈α↓ore,␈αthe␈αrelation␈↓ βo␈ε(q␈↓ ∧␈ε">␈α
(␈ε(u␈ε"/␈↓ ∧m␈ε(v␈↓ ∧␈␈ε")␈ε6␈αλ␈␈ε"␈αλ1␈αimplies␈αthat
␈β¬␈↓ λ-␈ε+n␈ε9␈α␈␈␈ε%1
␈β¬⊂␈↓ π`␈ε↓∩␈↓ 	∃␈ε↓∪
␈β¬∩␈↓ ¬~␈ε(u␈↓ ε,␈ε(u␈↓ πG␈ε(u␈↓ λ≥␈ε(b
␈β¬*␈↓ αy␈ε"3␈ε6␈α
∀␈↓ βC␈ε(q␈↓ βD␈ε"∂␈↓ β↑␈ε6␈␈↓ ∧
␈ε(q␈↓ ∧'␈ε"<␈↓ ¬|␈ε6␈␈↓ εM␈ε"+␈αλ1␈α
=␈↓ 	3␈ε"+␈αλ1.
␈β¬>␈↓ ∧Y␈∧¬>∧Yα↓_␈↓ ε,␈∧¬>ε,α∃␈↓ πG␈∧¬>πGα∃␈↓ πz␈∧¬>πzα↓_
␈β¬@␈↓ ¬/␈ε+n␈ε9␈␈ε%1␈↓ λP␈ε+n␈ε9␈␈ε%␈α␈1
␈β¬C␈↓ ∧Y␈ε(v␈↓ ∧t␈ε6␈␈↓ ¬ ␈ε(b␈↓ ε-␈ε(v␈↓ πH␈ε(v␈↓ πz␈ε(v␈↓ λ∃␈ε6␈␈↓ λA␈ε(b
␈βε␈↓ ↓H␈ε"Therefore
␈βε'␈↓ ε⊃␈ε+n␈ε9␈α␈␈␈ε%1
␈βε,␈↓ ¬!␈ε↓∩␈↓ εV␈ε↓∪
␈βε-␈↓ ∧8␈ε(u␈↓ ¬;␈ε(v␈↓ ¬V␈ε6␈␈↓ εα␈ε(b
␈βεE␈↓ ∧[␈ε">␈α
2␈↓ εv␈ε6∃␈ε"␈α
2(␈↓ πB␈ε(v␈↓ πl␈ε6␈␈ε"␈αλ1).
␈βεR␈↓ πS␈ε%1
␈βεY␈↓ ∧8␈∧εY∧8α∃␈↓ ¬;␈∧εY¬;α↓_
␈βε\␈↓ ¬m␈ε+n␈ε9␈␈ε%1
␈βε←␈↓ ∧9␈ε(v␈↓ ¬↑␈ε(b
␈βπ≤␈↓ ↓H␈ε"Finally,␈α∞since␈ε(␈α
b␈ε6␈α
␈␈ε"␈α	4␈ε6␈α
∃␈↓ ∧>␈ε"∂␈↓ ∧>␈ε(q␈↓ ∧Z␈ε6␈␈ε"␈α	3␈ε6␈α
∃␈↓ ¬W␈ε(q␈↓ ¬w␈ε"=␈ε6␈α
b␈ε(u␈ε"␈α␈/␈↓ ε\␈ε(v␈↓ εo␈ε6c␈α
∃␈ε"␈α
2(␈↓ πY␈ε(v␈↓ λ∧␈ε6␈␈ε"␈α
1),␈α∞w␈α␈e␈α
ha␈α␈v␈α␈e␈↓ 	s␈ε(v␈↓ 
"␈ε"<␈ε6␈α
b␈ε(b␈ε"/2␈ε6c␈ε".
␈βπ)␈↓ πk␈ε%1␈↓ 
¬␈ε%1
␈βπG␈↓ ↓H␈ε"This␈αpro␈α␈v␈α␈es␈αthe␈αresult␈αw␈α␈e␈αseek:
␈βλ¬␈↓ ↓H␈ε2Theorem␈αB.␈ε/␈α→If␈↓ β?␈ε(v␈↓ βk␈ε6∃␈α
b␈ε(b␈ε"/2␈ε6c␈ε/,␈αthen␈↓ ¬P␈ε(q␈↓ ¬Q␈ε"∂␈↓ ¬l␈ε6␈␈ε"␈αλ2␈ε6␈α
∀␈↓ εb␈ε(q␈↓ ε␈␈ε6∀␈↓ π-␈ε"∂␈↓ π-␈ε(q␈↓ π@␈ε/.
␈βλ∞␈↓ πq␈∧λ∞πq≠∂
␈βλ⊃␈↓ βP␈ε%1
␈βλC␈↓ α␈ε"The␈αm␈α↓ost␈α
importan␈α␈t␈αpart␈α
of␈αthis␈α
theorem␈αis␈α
that␈ε/␈αthe␈α
conclusion␈αis␈α
independ-
␈βλn␈↓ ↓H␈ε/en␈α␈t␈αof␈↓ α7␈ε(b␈ε";␈α
n␈α↓o␈α
matter␈αh␈α↓o␈α␈w␈α
large␈ε(␈α
b␈ε"␈α
is,␈α
the␈αtrial␈α
quotien␈α␈t␈↓ λ∪␈ε"∂␈↓ λ∪␈ε(q␈↓ λ3␈ε"will␈αnev␈α␈er␈α
be␈α
m␈α↓ore␈αthan
␈β	→␈↓ ↓H␈ε"2␈αin␈αerror.
␈β	D␈↓ α␈ε"The␈α∂condition␈α∞that␈↓ ∧J␈ε(v␈↓ ∧{␈ε6∃␈α∞b␈ε(b␈ε"/2␈ε6c␈ε"␈α∂is␈α∞v␈α␈ery␈α∂m␈α␈uch␈α∂lik␈α␈e␈α∞a␈α∂n␈α↓ormalization␈α∞require-
␈β	Q␈↓ ∧[␈ε%1
␈β	o␈↓ ↓H␈ε"men␈α␈t;␈α⊂in␈α∂fact,␈α∂it␈α∂is␈α∂exactly␈α∂the␈α∂condition␈α∂of␈α∂⎇oating-binary␈α∂n␈α↓ormalization␈α∂in␈α∞a
␈β
≠␈↓ ↓H␈ε"binary␈α∂computer.␈α≠One␈α∂simple␈α⊂w␈α␈a␈α␈y␈α∂to␈α⊂ensure␈α∂that␈↓ πy␈ε(v␈↓ λ*␈ε"is␈α⊂su}cien␈α␈tly␈α∂large␈α⊂is␈α∂to
␈β
'␈↓ λ
␈ε%1
␈β
F␈↓ ↓H␈ε"m␈α␈ultiply␈α
both␈ε(␈α∞u␈ε"␈α∞and␈↓ ∧~␈ε(v␈↓ ∧:␈ε"by␈ε6␈α∞b␈ε(b␈ε"␈α↓/(␈↓ ¬+␈ε(v␈↓ ¬V␈ε"+␈α	1)␈ε6c␈ε";␈α∂this␈α∞does␈α∞n␈α↓ot␈α
change␈α∞the␈α∞v␈α}alue␈α∞of␈ε(␈α∞u␈ε"/␈↓ ⊂␈ε(v␈↓ "␈ε",
␈β
R␈↓ ¬<␈ε%1
␈β
q␈↓ ↓H␈ε"n␈α↓or␈α
does␈αit␈αincrease␈αthe␈α
n␈α␈um␈α␈ber␈αof␈αplaces␈α
in␈↓ εw␈ε(v␈↓ π
␈ε",␈αand␈αexercise␈α23␈α
pro␈α␈v␈α␈es␈αthat␈αit␈α
will
␈β≤␈↓ ↓H␈ε"alw␈α␈a␈α␈ys␈α
mak␈α␈e␈α	the␈α
new␈α
v␈α}alue␈α
of␈↓ ¬≤␈ε(v␈↓ ¬H␈ε"large␈α
en␈α↓ough.␈α∩(␈ε/Note:␈ε"␈αAn␈α↓other␈α
w␈α␈a␈α␈y␈α
to␈α	n␈α↓ormalize
␈β)␈↓ ¬.␈ε%1
␈βG␈↓ ↓H␈ε"the␈αdivisor␈αis␈αdiscussed␈αin␈αexercise␈α28.)
␈βs␈↓ α␈ε"No␈α␈w␈α	that␈α	w␈α␈e␈α	ha␈α␈v␈α␈e␈α	armed␈α	ourselv␈α␈es␈α	with␈αλall␈α	of␈α	these␈α	facts,␈α
w␈α␈e␈α	are␈α	in␈α	a␈αλposition
␈β≡␈↓ ↓H␈ε"to␈α∩write␈α∪the␈α∩desired␈α∪long-division␈α∩algorithm.␈α$This␈α∩algorithm␈α∩uses␈α∪a␈α∩sligh␈α␈tly
␈βI␈↓ ↓H␈ε"impro␈α␈v␈α␈ed␈α⊂ch␈α↓oice␈α⊂of␈↓ ∧λ␈ε(q␈↓ ∧	␈ε"∂␈↓ ∧,␈ε"in␈α⊂step␈α⊂D3,␈α⊃which␈α⊂guaran␈α␈tees␈α⊃that␈↓ λg␈ε(q␈↓ 	␈ε"=␈↓ 	@␈ε"∂␈↓ 	@␈ε(q␈↓ 	c␈ε"or␈↓ 
∪␈ε(q␈↓ 
∀␈ε"∂␈↓ 
1␈ε6␈␈ε"␈α1;␈α∩in
␈βt␈↓ ↓H␈ε"fact,␈αthe␈αimpro␈α␈v␈α␈ed␈αch␈α↓oice␈αof␈↓ ¬␈ε"∂␈↓ ¬␈ε(q␈↓ ¬+␈ε"made␈αhere␈αis␈αalm␈α↓ost␈αalw␈α␈a␈α␈ys␈αaccurate.
␈β
2␈↓ ↓H␈ε2Algorithm␈α∩D␈ε"␈α∩(␈ε/Division␈α∩of␈α∩n␈α↓onnegativ␈α␈e␈α∩in␈α␈tegers␈↓ π<␈ε")␈ε2.␈ε"␈α$Giv␈α␈en␈α∩n␈α↓onnegativ␈α␈e␈α∩in␈α␈tegers
␈β
]␈↓ ↓H␈ε(u␈ε"␈α⊂=␈α⊂(␈↓ α-␈ε(u␈↓ αS␈ε(u␈↓ α}␈ε".␈αε.␈αε.␈↓ β.␈ε(u␈↓ ∧⊂␈ε")␈↓ ∧:␈ε"and␈↓ ¬∧␈ε(v␈↓ ¬'␈ε"=␈α⊃(␈↓ ¬h␈ε(v␈↓ ε
␈ε(v␈↓ ε2␈ε".␈αε.␈αε.␈↓ εb␈ε(v␈↓ πλ␈ε")␈↓ π"␈ε",␈α⊃where␈↓ λ)␈ε(v␈↓ λ\␈ε6≤␈ε"␈α⊂0␈α⊂and␈ε(␈α⊂n␈ε"␈α⊂>␈α⊃1,␈α⊂w␈α␈e
␈β
i␈↓ αB␈ε%1␈↓ αh␈ε%2␈↓ βC␈ε+m␈ε%+␈ε+␈α␈n␈↓ ∧≤␈ε+b␈↓ ¬y␈ε%1␈↓ ε≠␈ε%2␈↓ εt␈ε+n␈↓ π∀␈ε+b␈↓ λ:␈ε%1
␈β∞λ␈↓ ↓H␈ε"form␈α
the␈↓ α↑␈ε"radix-␈ε(b␈↓ βX␈ε"quotien␈α␈t␈ε6␈α
b␈ε(u␈ε"/␈↓ ¬≠␈ε(v␈↓ ¬.␈ε6c␈ε"␈α=␈α(␈↓ εβ␈ε(q␈↓ ε&␈ε(q␈↓ εN␈ε".␈αε.␈αε.␈↓ ε}␈ε(q␈↓ π,␈ε")␈↓ πT␈ε"and␈α
the␈α
remainder␈ε(␈α
u␈↓ 
 ␈ε"mod␈↓ 
j␈ε(v␈↓ λ␈ε"=
␈β∞∃␈↓ ε∃␈ε%0␈↓ ε8␈ε%1␈↓ π⊂␈ε+m␈↓ π8␈ε+b
␈β∞3␈↓ ↓H␈ε"(␈↓ ↓T␈ε(r␈↓ ↓t␈ε(r␈↓ α~␈ε".␈αε.␈αε.␈↓ αJ␈ε(r␈↓ αn␈ε")␈↓ βλ␈ε".␈α (This␈α⊂n␈α↓otation␈α⊂is␈α∂sligh␈α␈tly␈α⊂di{eren␈α␈t␈α⊂from␈α⊂that␈α∂used␈α⊂in␈α⊂the␈α∂abo␈α␈v␈α␈e
␈β∞@␈↓ ↓c␈ε%1␈↓ αβ␈ε%2␈↓ αZ␈ε+n␈↓ αz␈ε+b
␈β∞←␈↓ ↓H␈ε"pro␈α↓ofs.␈α⊂When␈ε(␈αn␈ε"␈α	=␈α
1,␈αthe␈αsimpler␈αalgorithm␈αof␈αexercise␈α16␈αsh␈α↓ould␈αbe␈αused.)
␈β∂∪␈↓ ↓J␈ε2D1.␈↓ α	␈ε"[Normalize.]␈α≥Set␈ε(␈α∞d␈ε6␈α∞␈ ␈α
b␈ε(b␈ε"␈α↓/(␈↓ ¬1␈ε(v␈↓ ¬\␈ε"+␈α
1)␈ε6c␈ε".␈α⊗Then␈α∞set␈α∞(␈↓ π|␈ε(u␈↓ λ"␈ε(u␈↓ λG␈ε(u␈↓ λs␈ε".␈αε.␈αε.␈↓ 	#␈ε(u␈↓ 
∧␈ε")␈↓ 
,␈ε"equal␈α∞to
␈β∂∨␈↓ ¬B␈ε%1␈↓ λ⊃␈ε%0␈↓ λ6␈ε%1␈↓ λ\␈ε%2␈↓ 	7␈ε+m␈ε%+␈ε+n␈↓ 
⊂␈ε+b
␈β∂>␈↓ α␈ε"(␈↓ α_␈ε(u␈↓ α>␈ε(u␈↓ αi␈ε".␈αε.␈αε.␈↓ β→␈ε(u␈↓ βz␈ε")␈↓ ∧≥␈ε"times␈ε(␈αλd␈ε",␈α	and␈αλset␈αλ(␈↓ ε ␈ε(v␈↓ εC␈ε(v␈↓ εk␈ε".␈αε.␈αε.␈↓ π≠␈ε(v␈↓ πA␈ε")␈↓ πc␈ε"equal␈αλto␈αλ(␈↓ λq␈ε(v␈↓ 	∀␈ε(v␈↓ 	<␈ε".␈αε.␈αε.␈↓ 	l␈ε(v␈↓ 
∩␈ε")␈↓ 
4␈ε"times␈ε(␈αλd␈ε".
␈β∂K␈↓ α-␈ε%1␈↓ αR␈ε%2␈↓ β.␈ε+m␈ε%␈α␈+␈ε+n␈↓ ∧ε␈ε+b␈↓ ε2␈ε%1␈↓ εT␈ε%2␈↓ π,␈ε+n␈↓ πM␈ε+b␈↓ 	β␈ε%1␈↓ 	%␈ε%2␈↓ 	⎇␈ε+n␈↓ 
≡␈ε+b
␈β∂i␈↓ α␈ε"(Note␈αthe␈αin␈α␈troduction␈αof␈αa␈αnew␈αdigit␈αposition␈↓ πf␈ε(u␈↓ λ↔␈ε"at␈αthe␈αle$␈αof␈↓ 	i␈ε(u␈↓ 
∂␈ε";␈αif␈ε(␈αd␈ε"␈α
=␈α
1,
␈β∂v␈↓ π{␈ε%0␈↓ 	}␈ε%1
␈β⊂∃␈↓ α␈ε"all␈α∂w␈α␈e␈α∞need␈α∂to␈α∞do␈α∂in␈α∞this␈α∂step␈α∂is␈α∞to␈α∂set␈↓ π¬␈ε(u␈↓ π9␈ε6␈ ␈ε"␈α∞0.␈α_On␈α∂a␈α∞binary␈α∂computer␈α∞it
␈β⊂!␈↓ π~␈ε%0
␈β⊂@␈↓ α␈ε"ma␈α␈y␈αbe␈αpreferable␈αto␈αch␈α↓o␈α↓ose␈ε(␈αd␈ε"␈αto␈αbe␈αa␈αpo␈α␈w␈α␈er␈αof␈α2␈αinstead␈αof␈αusing␈αthe␈αv␈α}alue
␈β⊂k␈↓ α␈ε"suggested␈α∞here;␈α⊂an␈α␈y␈α∂v␈α}alue␈α∞of␈ε(␈α∞d␈ε"␈α∂that␈α∂results␈α∞in␈↓ πq␈ε(v␈↓ λ!␈ε6∃␈α∞b␈ε(b␈ε"/2␈ε6c␈ε"␈α∂will␈α∞su}ce.␈α↔See
␈β⊂w␈↓ λα␈ε%1
␈β⊃⊗␈↓ α␈ε"also␈αexercise␈α37.)
␈β∪(

␈β↓U␈↓ ↓H␈ε"258␈↓ 
b␈ε"4.3.1
␈β↓\␈↓ α=␈ε∞ARITH␈α↓MET␈α↓IC
␈βε∞␈↓ ¬↔␈ε3Fi␈α↓g␈α␈.␈α7␈α␈.␈ε#␈α~Lon␈α␈g␈αd␈α␈i␈α↓v␈α␈isi␈α↓o␈α␈n.
␈βπ∩␈↓ ↓J␈ε2D2.␈↓ α	␈ε"[Initialize␈↓ β+␈ε(j␈↓ β<␈ε".]␈α Set␈↓ ∧2␈ε(j␈↓ ∧T␈ε6␈ ␈ε"␈α⊃0.␈α (The␈α⊂lo␈α↓op␈α⊂on␈↓ π(␈ε(j␈↓ π9␈ε",␈α⊃steps␈α⊂D2␈α⊂through␈α⊂D7,␈α⊂will␈α⊂be
␈βπ=␈↓ α␈ε"essen␈α␈tially␈α∞a␈α∞division␈α∞of␈α
(␈↓ ¬_␈ε(u␈↓ ¬<␈ε(u␈↓ ε∪␈ε".␈αε.␈αε.␈↓ εC␈ε(u␈↓ π↔␈ε")␈↓ π@␈ε"by␈α
(␈↓ λ␈ε(v␈↓ λ#␈ε(v␈↓ λK␈ε".␈αε.␈αε.␈↓ λ{␈ε(v␈↓ 	!␈ε")␈↓ 	I␈ε"to␈α∞get␈α∞a␈α
single
␈βπI␈↓ ¬-␈ε+j␈↓ ¬Q␈ε+j␈↓ ¬←␈ε%+␈α␈1␈↓ εX␈ε+j␈↓ εe␈ε%+␈ε+n␈↓ π#␈ε+b␈↓ λ∩␈ε%1␈↓ λ4␈ε%2␈↓ 	␈ε+n␈↓ 	-␈ε+b
␈βπh␈↓ α␈ε"quotien␈α␈t␈αdigit␈↓ βm␈ε(q␈↓ ∧∞␈ε";␈αcf.␈αFig.␈α6.)
␈βπu␈↓ β␈␈ε+j
␈βλ#␈↓ ↓J␈ε2D3.␈↓ α	␈ε"[Calculate␈↓ β0␈ε"∂␈↓ β0␈ε(q␈↓ βC␈ε".]␈α
If␈↓ ∧¬␈ε(u␈↓ ∧3␈ε"=␈↓ ∧a␈ε(v␈↓ ¬β␈ε",␈α
set␈↓ ¬L␈ε"∂␈↓ ¬L␈ε(q␈↓ ¬i␈ε6␈ ␈ε(␈α
b␈ε6␈α↓␈␈ε"␈αα1;␈α
otherwise␈αλset␈↓ λD␈ε(q␈↓ λE␈ε"∂␈↓ λa␈ε6␈ ␈α
b␈ε"(␈↓ 	)␈ε(u␈↓ 	M␈ε(b␈ε"␈αα+␈↓ 
β␈ε(u␈↓ 
T␈ε")/␈↓ 
r␈ε(v␈↓ ∀␈ε6c␈ε".
␈βλ/␈↓ ∧~␈ε+j␈↓ ∧s␈ε%1␈↓ 	>␈ε+j␈↓ 
_␈ε+j␈↓ 
&␈ε%+␈α␈1␈↓ ∧␈ε%1
␈βλN␈↓ α␈ε"No␈α␈w␈αtest␈α
if␈↓ βH␈ε(v␈↓ βj␈ε(q␈↓ βk␈ε"∂␈↓ ∧λ␈ε">␈α
(␈↓ ∧B␈ε(u␈↓ ∧f␈ε(b␈ε"␈αλ+␈↓ ¬*␈ε(u␈↓ εα␈ε6␈␈↓ ε/␈ε"∂␈↓ ε/␈ε(q␈↓ εB␈ε(v␈↓ εd␈ε")␈ε(b␈ε"␈αλ+␈↓ π4␈ε(u␈↓ λ∧␈ε";␈α
if␈αso,␈αdecrease␈↓ 
α␈ε"∂␈↓ 
α␈ε(q␈↓ 
!␈ε"by␈α1␈αand
␈βλZ␈↓ βY␈ε%2␈↓ ∧W␈ε+j␈↓ ¬>␈ε+j␈↓ ¬L␈ε%+1␈↓ εS␈ε%1␈↓ πH␈ε+j␈↓ πV␈ε%+2
␈βλy␈↓ α␈ε"repeat␈αthis␈αtest.␈α∃(The␈αlatter␈αtest␈α
determines␈αat␈αhigh␈αspeed␈αm␈α↓ost␈αof␈αthe␈α
cases
␈β	$␈↓ α␈ε"in␈αwhich␈αthe␈α
trial␈αv␈α}alue␈↓ ¬λ␈ε(q␈↓ ¬	␈ε"∂␈↓ ¬'␈ε"is␈α
one␈αto␈α↓o␈αlarge,␈αand␈α
it␈αeliminates␈ε/␈αall␈ε"␈αcases␈αwhere
␈β	O␈↓ α␈ε(q␈↓ α
␈ε"∂␈↓ α+␈ε"is␈αt␈α␈w␈α␈o␈αto␈α↓o␈αlarge;␈αsee␈αexercises␈α19,␈α20,␈α21.)
␈β

␈↓ ↓J␈ε2D4.␈↓ α	␈ε"[Multiply␈αand␈αsubtract.]␈α→Replace␈α(␈↓ ε/␈ε(u␈↓ εS␈ε(u␈↓ π*␈ε".␈αε.␈αε.␈↓ πZ␈ε(u␈↓ λ.␈ε")␈↓ λT␈ε"by␈α(␈↓ 	∪␈ε(u␈↓ 	7␈ε(u␈↓ 
∞␈ε".␈αε.␈αε.␈↓ 
>␈ε(u␈↓ ∩␈ε")
␈β
⊗␈↓ εD␈ε+j␈↓ εh␈ε+j␈↓ εu␈ε%+1␈↓ πn␈ε+j␈↓ π|␈ε%+␈ε+n␈↓ λ:␈ε+b␈↓ 	(␈ε+j␈↓ 	L␈ε+j␈↓ 	Y␈ε%+1␈↓ 
S␈ε+j␈↓ 
`␈ε%+␈ε+n␈↓ ≡␈ε+b
␈β
5␈↓ α␈ε"min␈α␈us␈↓ αt␈ε(q␈↓ αu␈ε"∂␈↓ β∪␈ε"times␈α(␈↓ β}␈ε(v␈↓ ∧!␈ε(v␈↓ ∧I␈ε".␈αε.␈αε.␈↓ ∧y␈ε(v␈↓ ¬∨␈ε")␈↓ ¬9␈ε".␈α⊂This␈αstep␈α(analogous␈αto␈αsteps␈αM3,␈αM4,␈αand␈αM5
␈β
A␈↓ ∧⊂␈ε%1␈↓ ∧2␈ε%2␈↓ ¬␈ε+n␈↓ ¬+␈ε+b
␈β
`␈↓ α␈ε"of␈αAlgorithm␈αM)␈αconsists␈αof␈αa␈αsimple␈αm␈α␈ultiplication␈αby␈αa␈αone-place␈αn␈α␈um␈α␈ber,
␈β␈↓ α␈ε"com␈α␈bined␈α	with␈αλa␈αλsubtraction.␈α∂The␈α	digits␈αλ(␈↓ π∞␈ε(u␈↓ π2␈ε",␈↓ πB␈ε(u␈↓ λ∪␈ε",␈↓ λ#␈ε".␈αε.␈αε.␈↓ λS␈ε",␈↓ λc␈ε(u␈↓ 	7␈ε")␈α	sh␈α↓ould␈αλbe␈αλk␈α␈ept
␈β_␈↓ π#␈ε+j␈↓ πW␈ε+j␈↓ πd␈ε%+1␈↓ λx␈ε+j␈↓ 	¬␈ε%+␈ε+n
␈β6␈↓ α␈ε"positiv␈α␈e;␈α∩if␈α∂the␈α⊂result␈α⊂of␈α⊂this␈α∂step␈α⊂is␈α⊂actually␈α⊂negativ␈α␈e,␈α⊂(␈↓ 	∪␈ε(u␈↓ 	7␈ε(u␈↓ 
∞␈ε".␈αε.␈αε.␈↓ 
>␈ε(u␈↓ ∩␈ε")
␈βC␈↓ 	(␈ε+j␈↓ 	L␈ε+j␈↓ 	Y␈ε%+1␈↓ 
S␈ε+j␈↓ 
`␈ε%+␈ε+n␈↓ ≡␈ε+b
␈β\␈↓ εV␈ε+n␈ε%␈α␈+1
␈βb␈↓ α␈ε"sh␈α↓ould␈αbe␈αle$␈αas␈αthe␈αtrue␈αv␈α}alue␈αplus␈↓ εF␈ε(b␈↓ π↔␈ε",␈αi.e.,␈αas␈αthe␈ε(␈αb␈ε"'s␈αcomplemen␈α␈t␈αof␈αthe
␈β
␈↓ α␈ε"true␈αv␈α}alue,␈αand␈αa␈α\␈↓ ∧5␈ε"borro␈α␈w"␈αto␈αthe␈αle$␈αsh␈α↓ould␈αbe␈αremem␈α␈bered.
␈βG␈↓ ↓J␈ε2D5.␈↓ α	␈ε"[T␈α⎇est␈α∞remainder.]␈α≠Set␈↓ ∧p␈ε(q␈↓ ¬≡␈ε6␈ ␈↓ ¬N␈ε"∂␈↓ ¬N␈ε(q␈↓ ¬a␈ε".␈α∀If␈α
the␈α∞result␈α
of␈α
step␈α∞D4␈α
w␈α␈as␈α
negativ␈α␈e,␈α∞go␈α
to
␈βT␈↓ ¬α␈ε+j
␈βr␈↓ α␈ε"step␈αD6;␈αotherwise␈αgo␈αon␈αto␈αstep␈αD7.
␈β
-␈↓ ↓J␈ε2D6.␈↓ α	␈ε"[Add␈α
back.]␈α∪(The␈α
probabilit␈α␈y␈α
that␈αthis␈α
step␈α
is␈α
necessary␈α
is␈αv␈α␈ery␈α
small,␈α
on␈α
the
␈β
X␈↓ α␈ε"order␈αof␈αonly␈α2/␈ε(b␈ε",␈αas␈αsh␈α↓o␈α␈wn␈αin␈αexercise␈α21;␈αtest␈αdata␈αthat␈αactiv␈α}ates␈αthis␈αstep
␈β∞β␈↓ α␈ε"sh␈α↓ould␈αtherefore␈αbe␈αspeci|cally␈αcon␈α␈triv␈α␈ed␈αwhen␈αdebugging.)␈α→Decrease␈↓ 
Y␈ε(q␈↓ ¬␈ε"by
␈β∞∂␈↓ 
j␈ε+j
␈β∞.␈↓ α␈ε"1,␈αand␈αadd␈α
(0␈↓ βZ␈ε(v␈↓ β⎇␈ε(v␈↓ ∧%␈ε".␈αε.␈αε.␈↓ ∧U␈ε(v␈↓ ∧{␈ε")␈↓ ¬ ␈ε"to␈α
(␈↓ ¬V␈ε(u␈↓ ¬z␈ε(u␈↓ εK␈ε(u␈↓ π"␈ε".␈αε.␈αε.␈↓ πR␈ε(u␈↓ λ&␈ε")␈↓ λ@␈ε".␈α∃(A␈↓ 	∂␈ε"carry␈αwill␈αoccur␈α
to
␈β∞;␈↓ βl␈ε%1␈↓ ∧∞␈ε%2␈↓ ∧f␈ε+n␈↓ ¬π␈ε+b␈↓ ¬k␈ε+j␈↓ ε∂␈ε+j␈↓ ε≥␈ε%+␈α␈1␈↓ ε`␈ε+j␈↓ εm␈ε%+2␈↓ πg␈ε+j␈↓ πt␈ε%+␈ε+n␈↓ λ2␈ε+b
␈β∞Y␈↓ α␈ε"the␈α∞le$␈α∞of␈↓ β9␈ε(u␈↓ β]␈ε",␈α∂and␈α
it␈α∞sh␈α↓ould␈α∞be␈α∞ign␈α↓ored␈α∞since␈α
it␈α∞cancels␈α∞with␈α∞the␈α
\borro␈α␈w"
␈β∞f␈↓ βN␈ε+j
␈β∂¬␈↓ α␈ε"that␈αoccurred␈αin␈αD4.)
␈β∂?␈↓ ↓J␈ε2D7.␈↓ α	␈ε"[Lo␈α↓op␈αon␈↓ β"␈ε(j␈↓ β3␈ε".]␈α→Increase␈↓ ∧j␈ε(j␈↓ ¬π␈ε"by␈αone.␈α⊂No␈α␈w␈αif␈↓ ε␈␈ε(j␈↓ π~␈ε6∀␈ε(␈α
m␈ε",␈αgo␈αback␈αto␈αD3.
␈β∂y␈↓ ↓J␈ε2D8.␈↓ α	␈ε"[Unn␈α↓ormalize.]␈α≥No␈α␈w␈α
(␈↓ ∧k␈ε(q␈↓ ¬∞␈ε(q␈↓ ¬6␈ε".␈αε.␈αε.␈↓ ¬f␈ε(q␈↓ ε∀␈ε")␈↓ ε<␈ε"is␈α∞the␈α∞desired␈α∞quotien␈α␈t,␈α∞and␈α∞the␈α
desired
␈β⊂ε␈↓ ∧⎇␈ε%0␈↓ ¬ ␈ε%1␈↓ ¬x␈ε+m␈↓ ε ␈ε+b
␈β⊂$␈↓ α␈ε"remainder␈αma␈α␈y␈αbe␈αobtained␈αby␈αdividing␈α(␈↓ π∩␈ε(u␈↓ πv␈ε".␈αε.␈αε.␈↓ λ&␈ε(u␈↓ 	π␈ε")␈↓ 	-␈ε"by␈ε(␈αd␈ε"␈α↓.
␈β⊂-␈↓ 
$␈∧⊂-
$≠∂
␈β⊂1␈↓ π'␈ε+m␈ε%␈α␈+1␈↓ λ;␈ε+m␈ε%␈α␈+␈ε+n␈↓ 	∪␈ε+b
␈β⊂m␈↓ α␈ε"The␈α∞represen␈α␈tation␈α
of␈α
Algorithm␈α∞D␈α
as␈α∞a␈↓ πX␈ε"program␈α
has␈α
sev␈α␈eral␈α∞poin␈α␈ts␈α
of
␈β⊂o␈↓ π⊃␈ε5MIX
␈β⊃_␈↓ ↓H␈ε"in␈α␈terest:
␈β∪(

␈β↓U␈↓ ↓H␈ε"4.3.1␈↓ 
v␈ε"259
␈β↓\␈↓ ε[␈ε∞T␈α↓HE␈α
CL␈α↓AS␈α␈SICA␈α↓L␈α
AL␈α␈G␈α↓ORITH␈α↓MS
␈βα"␈↓ ↓H␈ε2Program␈αD␈ε"␈α(␈ε/Division␈αof␈αn␈α↓onnegativ␈α␈e␈αin␈α␈tegers␈↓ πβ␈ε")␈ε2.␈ε"␈α⊗The␈αcon␈α␈v␈α␈en␈α␈tions␈αof␈αthis␈αprogram
␈βαM␈↓ ↓H␈ε"are␈αanalogous␈αto␈αProgram␈αA␈↓ ¬∧␈ε";␈↓ ¬~␈ε"rI␈↓ ¬4␈ε"1␈ε6␈α
⊃␈ε(␈α
i␈ε",␈↓ ε ␈ε"rI␈↓ ε:␈ε"2␈ε6␈α
⊃␈↓ π∧␈ε(j␈↓ π≥␈ε6␈␈ε(␈αλm␈ε",␈↓ π␈␈ε"rI␈↓ λ→␈ε"3␈ε6␈α
⊃␈ε(␈α
i␈ε"␈αλ+␈↓ 	#␈ε(j␈↓ 	4␈ε".
␈ββ#␈↓ ↓Z␈ε)0␈α␈01␈↓ α-␈ε5D1␈↓ αf␈ε5J␈α␈OV␈↓ βD␈ε5OFLO␈↓ ¬M␈ε#1␈↓ εp␈ε0D1.␈α∂No␈α␈rmalize.
␈ββC␈↓ εp␈∧βCεpα↓←
␈ββK␈↓ ↓e␈ε7↓␈αε↓␈α¬↓␈↓ εp␈ε#(Se␈α␈e␈αexe␈α␈rcise␈α25)
␈ββr␈↓ ↓Z␈ε)0␈α␈39␈↓ α-␈ε5D2␈↓ αf␈ε5E␈α␈NN2␈↓ βD␈ε5M␈↓ ¬M␈ε#1␈↓ εp␈ε0D2.␈α∂In␈α␈i␈α↓tia␈α␈l␈α↓ize␈↓ λ:␈ε)j␈↓ λI␈ε0.
␈β∧∩␈↓ εp␈∧∧∩εpα↓J␈↓ λB␈∧∧∩λBα⊃
␈β∧~␈↓ ↓Z␈ε)0␈α␈40␈↓ αf␈ε5S␈α␈TZ␈↓ βD␈ε5V␈↓ ¬M␈ε#1␈↓ εp␈ε#Se␈α␈t␈↓ π)␈ε)v␈↓ πR␈ε7␈ ␈ε#␈α
0␈α␈,␈αfor␈αc␈α␈on␈α␈v␈α}enien␈α␈ce␈αin␈αD4␈α␈.
␈β∧&␈↓ π:␈ε&0
␈β∧B␈↓ ↓Z␈ε)0␈α␈41␈↓ α-␈ε5D3␈↓ αf␈ε5L␈α␈DA␈↓ βD␈ε5U+M,2(␈α␈1:5)␈↓ ¬"␈ε)M␈↓ ¬O␈ε#+␈αλ1␈↓ εp␈ε0D3.␈α∂Ca␈α␈l␈α↓cu␈α␈late␈↓ λE␈ε#∂␈↓ λE␈ε)q␈↓ λW␈ε0.
␈β∧a␈↓ εp␈∧∧aεpα↓↑␈↓ λS␈∧∧aλSα
␈β∧i␈↓ ↓Z␈ε)0␈α␈42␈↓ αf␈ε5L␈α␈DX␈↓ βD␈ε5U+M+1,␈α␈2␈↓ ¬"␈ε)M␈↓ ¬O␈ε#+␈αλ1␈↓ εp␈ε#rAX␈↓ π6␈ε7␈ ␈↓ πa␈ε)u␈↓ λα␈ε)b␈ε#␈αλ+␈↓ λA␈ε)u␈↓ 	
␈ε#.
␈β∧u␈↓ πt␈ε,j␈↓ λT␈ε,j␈↓ λ`␈ε&+␈α↓1
␈β¬⊃␈↓ ↓Z␈ε)0␈α␈43␈↓ αf␈ε5D␈α␈IV␈↓ βD␈ε5V+1␈↓ ¬"␈ε)M␈↓ ¬O␈ε#+␈αλ1␈↓ εp␈ε#rA␈↓ π≡␈ε7␈ ␈α
b␈↓ πV␈ε)r␈↓ πe␈ε)A␈↓ π⎇␈ε)X␈↓ λ≤␈ε#/␈↓ λ-␈ε)v␈↓ λL␈ε7c␈ε#.
␈β¬≤␈↓ λ=␈ε&1
␈β¬8␈↓ ↓Z␈ε)0␈α␈44␈↓ αf␈ε5J␈α␈OV␈↓ βD␈ε51F␈↓ ¬"␈ε)M␈↓ ¬O␈ε#+␈αλ1␈↓ εp␈ε#Ju␈α␈mp␈αif␈αqu␈α␈otien␈α}t␈↓ λm␈ε#=␈ε)␈α	b␈ε#.
␈β¬`␈↓ ↓Z␈ε)0␈α␈45␈↓ αf␈ε5S␈α␈TA␈↓ βD␈ε5QHAT␈↓ ¬"␈ε)M␈↓ ¬O␈ε#+␈αλ1␈↓ εp␈ε)q␈↓ εq␈ε#∂␈↓ π␈ε7␈ ␈↓ π6␈ε#rA␈↓ π[␈ε#.
␈βελ␈↓ ↓Z␈ε)0␈α␈46␈↓ αf␈ε5S␈α␈TX␈↓ βD␈ε5RHAT␈↓ ¬"␈ε)M␈↓ ¬O␈ε#+␈αλ1␈↓ εo␈ε#∂␈↓ εp␈ε)r␈↓ π	␈ε7␈ ␈↓ π3␈ε)u␈↓ πT␈ε)b␈ε#␈αλ+␈↓ λ∪␈ε)u␈↓ λd␈ε7␈␈↓ 	␈ε)q␈↓ 	
␈ε#∂␈↓ 	≡␈ε)v
␈βε∪␈↓ πG␈ε,j␈↓ λ&␈ε,j␈↓ λ3␈ε&+1␈↓ 	/␈ε&1
␈βε/␈↓ ↓Z␈ε)0␈α␈47␈↓ αf␈ε5J␈α␈MP␈↓ βD␈ε52F␈↓ ¬"␈ε)M␈↓ ¬O␈ε#+␈αλ1␈↓ π3␈ε#=␈α	(␈↓ πh␈ε)u␈↓ λ	␈ε)b␈ε#␈αλ+␈↓ λH␈ε)u␈↓ 	⊃␈ε#)␈↓ 	"␈ε#mo␈α␈d␈↓ 	f␈ε)v␈↓ 
ε␈ε#.
␈βε;␈↓ π|␈ε,j␈↓ λ[␈ε,j␈↓ λh␈ε&+1␈↓ 	w␈ε&1
␈βεW␈↓ ↓Z␈ε)0␈α␈48␈↓ α-␈ε51H␈↓ αf␈ε5L␈α␈DX␈↓ βD␈ε5WM1␈↓ εp␈ε#rX␈↓ π≡␈ε7␈ ␈ε)␈α
b␈ε7␈αλ␈␈ε#␈απ1.
␈βε}␈↓ ↓Z␈ε)0␈α␈49␈↓ αf␈ε5L␈α␈DA␈↓ βD␈ε5U+M+1,␈α␈2␈↓ εp␈ε#rA␈↓ π≡␈ε7␈ ␈↓ πI␈ε)u␈↓ λ∩␈ε#.␈α~(Here␈↓ 	
␈ε)u␈↓ 	8␈ε#=␈↓ 	b␈ε)v␈↓ 
α␈ε#.)
␈βπ
␈↓ π\␈ε,j␈↓ πi␈ε&+1␈↓ 	!␈ε,j␈↓ 	s␈ε&1
␈βπ&␈↓ ↓Z␈ε)0␈α␈50␈↓ αf␈ε5J␈α␈MP␈↓ βD␈ε54F
␈βπN␈↓ ↓Z␈ε)0␈α␈51␈↓ α-␈ε53H␈↓ αf␈ε5L␈α␈DX␈↓ βD␈ε5QHAT␈↓ ¬H␈ε)E
␈βπu␈↓ ↓Z␈ε)0␈α␈52␈↓ αf␈ε5D␈α␈ECX␈↓ βD␈ε51␈↓ ¬H␈ε)E␈↓ εp␈ε#Decre␈α␈ase␈↓ πy␈ε)q␈↓ πz␈ε#∂␈↓ λ⊗␈ε#b␈α␈y␈αon␈α␈e.
␈βλ≥␈↓ ↓Z␈ε)0␈α␈53␈↓ αf␈ε5L␈α␈DA␈↓ βD␈ε5RHAT␈↓ ¬H␈ε)E␈↓ εp␈ε#Adju␈α␈st␈↓ π\␈ε#∂␈↓ π]␈ε)r␈↓ πx␈ε#a␈α␈cco␈α␈rding␈α␈l␈α↓y␈α␈:
␈βλD␈↓ ↓Z␈ε)0␈α␈54␈↓ α-␈ε54H␈↓ αf␈ε5S␈α␈TX␈↓ βD␈ε5QHAT␈↓ ¬H␈ε)E␈↓ εp␈ε)q␈↓ εq␈ε#∂␈↓ π␈ε7␈ ␈↓ π6␈ε#rX␈↓ π[␈ε#.
␈βλl␈↓ ↓Z␈ε)0␈α␈55␈↓ αf␈ε5A␈α␈DD␈↓ βD␈ε5V+1␈↓ ¬H␈ε)E␈↓ εp␈ε#rA␈↓ π≡␈ε7␈ ␈↓ πI␈ε#rA␈↓ πu␈ε#+␈↓ λ≡␈ε)v␈↓ λ>␈ε#.
␈βλx␈↓ λ.␈ε&1
␈β	∀␈↓ ↓Z␈ε)0␈α␈56␈↓ αf␈ε5J␈α␈OV␈↓ βD␈ε5D4␈↓ ¬H␈ε)E␈↓ εp␈ε#(If␈↓ π≠␈ε#∂␈↓ π≤␈ε#r␈↓ π4␈ε#w␈α↓ill␈αbe␈ε7␈α∃␈ε)␈α	b␈ε#␈α↓,␈↓ λm␈ε)v␈↓ 	
␈ε#∂␈↓ 	
␈ε)q␈↓ 	*␈ε#will␈αb␈α␈e␈α<␈↓ 
?␈ε#∂␈↓ 
?␈ε)r␈↓ 
O␈ε)b␈ε#.)
␈β	∨␈↓ λ⎇␈ε&2
␈β	;␈↓ ↓Z␈ε)0␈α␈57␈↓ αf␈ε5S␈α␈TA␈↓ βD␈ε5RHAT␈↓ ¬H␈ε)E␈↓ εo␈ε#∂␈↓ εp␈ε)r␈↓ π	␈ε7␈ ␈↓ π3␈ε#rA␈↓ πX␈ε#.
␈β	c␈↓ ↓Z␈ε)0␈α␈58␈↓ αf␈ε5L␈α␈DA␈↓ βD␈ε5QHAT␈↓ ¬H␈ε)E
␈β

␈↓ ↓Z␈ε)0␈α␈59␈↓ α-␈ε52H␈↓ αf␈ε5M␈α␈UL␈↓ βD␈ε5V+2␈↓ ∧⎇␈ε)M␈↓ ¬*␈ε#+␈↓ ¬R␈ε)E␈↓ ¬t␈ε#+␈αλ1
␈β
2␈↓ ↓Z␈ε)0␈α␈60␈↓ αf␈ε5C␈α␈MPA␈↓ βD␈ε5RHAT␈↓ ∧⎇␈ε)M␈↓ ¬*␈ε#+␈↓ ¬R␈ε)E␈↓ ¬t␈ε#+␈αλ1␈↓ εp␈ε#T␈α⎇est␈αif␈↓ πY␈ε)v␈↓ πx␈ε)q␈↓ πy␈ε#∂␈↓ λ∪␈ε7∀␈↓ λ=␈ε#∂␈↓ λ>␈ε)r␈↓ λM␈ε)b␈ε#␈αλ+␈↓ 	␈ε)u␈↓ 	U␈ε#.
␈β
>␈↓ πi␈ε&2␈↓ 	∨␈ε,j␈↓ 	+␈ε&+␈α↓2
␈β
Z␈↓ ↓Z␈ε)0␈α␈61␈↓ αf␈ε5J␈α␈L␈↓ βD␈ε5D4␈↓ ∧⎇␈ε)M␈↓ ¬*␈ε#+␈↓ ¬R␈ε)E␈↓ ¬t␈ε#+␈αλ1
␈β↓␈↓ ↓Z␈ε)0␈α␈62␈↓ αf␈ε5J␈α␈G␈↓ βD␈ε53B␈↓ ¬H␈ε)E
␈β)␈↓ ↓Z␈ε)0␈α␈63␈↓ αf␈ε5C␈α␈MPX␈↓ βD␈ε5U+M+2,␈α␈2
␈βP␈↓ ↓Z␈ε)0␈α␈64␈↓ αf␈ε5J␈α␈G␈↓ βD␈ε53B␈↓ εp␈ε#If␈αn␈α↓o␈α␈t,␈↓ πW␈ε#∂␈↓ πW␈ε)q␈↓ πt␈ε#is␈αto␈α↓o␈α
l␈α↓a␈α␈rge.
␈βx␈↓ ↓Z␈ε)0␈α␈65␈↓ α-␈ε5D4␈↓ αf␈ε5E␈α␈NTX␈↓ βD␈ε51␈↓ ¬"␈ε)M␈↓ ¬O␈ε#+␈αλ1␈↓ εp␈ε0D4.␈α∂M␈α␈ulti␈↓ λ␈ε0p␈↓ λ∪␈ε0l␈↓ λ≤␈ε0y␈↓ λ9␈ε0a␈α␈nd␈αs␈α␈ub␈α␈tract.
␈β↔␈↓ εp␈∧↔εpα↓⊃␈↓ λλ␈∧↔λλα_␈↓ λ&␈∧↔λ&α↓U
␈β ␈↓ ↓Z␈ε)0␈α␈66␈↓ αf␈ε5E␈α␈NT1␈↓ βD␈ε5N␈↓ ¬"␈ε)M␈↓ ¬O␈ε#+␈αλ1␈↓ εp␈ε)i␈ε7␈α	␈ ␈ε)␈α
n␈ε#.
␈βG␈↓ ↓Z␈ε)0␈α␈67␈↓ αf␈ε5E␈α␈NT3␈↓ βD␈ε5M+N,2␈↓ ¬"␈ε)M␈↓ ¬O␈ε#+␈αλ1␈↓ εp␈ε#(␈ε)i␈ε#␈απ+␈↓ π7␈ε)j␈↓ πG␈ε#)␈ε7␈α	␈ ␈ε#␈α
(␈ε)n␈ε#␈απ+␈↓ λU␈ε)j␈↓ λe␈ε#).
␈βo␈↓ ↓Z␈ε)0␈α␈68␈↓ α-␈ε52H␈↓ αf␈ε5S␈α␈TX␈↓ βD␈ε5CARRY␈↓ ∧[␈ε#(␈↓ ∧f␈ε)M␈↓ ¬∪␈ε#+␈αλ1)(␈↓ ¬c␈ε)N␈↓ ε
␈ε#+␈αλ1)␈↓ εp␈ε#(Here␈α1␈ε7␈απ␈␈ε)␈αλb␈ε#␈α	<␈↓ λL␈ε#rX␈↓ λz␈ε7∀␈ε#␈α
+1␈α␈.␈α↓)
␈β
⊗␈↓ ↓Z␈ε)0␈α␈69␈↓ αf␈ε5L␈α␈DAN␈↓ βD␈ε5V,1␈↓ ∧[␈ε#(␈↓ ∧f␈ε)M␈↓ ¬∪␈ε#+␈αλ1)(␈↓ ¬c␈ε)N␈↓ ε
␈ε#+␈αλ1)
␈β
>␈↓ ↓Z␈ε)0␈α␈70␈↓ αf␈ε5M␈α␈UL␈↓ βD␈ε5QHAT␈↓ ∧[␈ε#(␈↓ ∧f␈ε)M␈↓ ¬∪␈ε#+␈αλ1)(␈↓ ¬c␈ε)N␈↓ ε
␈ε#+␈αλ1)␈↓ εp␈ε#rAX␈↓ π6␈ε7␈ ␈α
␈␈↓ λα␈ε)q␈↓ λβ␈ε#∂␈↓ λ∀␈ε)v␈↓ λ0␈ε#.
␈β
J␈↓ λ$␈ε,i
␈β
f␈↓ ↓Z␈ε)0␈α␈71␈↓ αf␈ε5S␈α␈LC␈↓ βD␈ε55␈↓ ∧[␈ε#(␈↓ ∧f␈ε)M␈↓ ¬∪␈ε#+␈αλ1)(␈↓ ¬c␈ε)N␈↓ ε
␈ε#+␈αλ1)␈↓ εp␈ε#In␈α␈te␈α␈rcha␈α␈nge␈↓ λ$␈ε#rA␈↓ λS␈ε7$␈↓ λ⎇␈ε#rX␈↓ 	"␈ε#.
␈β∞
␈↓ ↓Z␈ε)0␈α␈72␈↓ αf␈ε5A␈α␈DD␈↓ βD␈ε5CARRY␈↓ ∧[␈ε#(␈↓ ∧f␈ε)M␈↓ ¬∪␈ε#+␈αλ1)(␈↓ ¬c␈ε)N␈↓ ε
␈ε#+␈αλ1)␈↓ εp␈ε#Add␈α
the␈αc␈α␈on␈α␈tr␈α␈i␈α↓b␈α␈ution␈α
from␈αth␈α␈e
␈β∞5␈↓ ↓Z␈ε)0␈α␈73␈↓ αf␈ε5J␈α␈NOV␈↓ βD␈ε5*+2␈↓ ∧[␈ε#(␈↓ ∧f␈ε)M␈↓ ¬∪␈ε#+␈αλ1)(␈↓ ¬c␈ε)N␈↓ ε
␈ε#+␈αλ1)␈↓ π3␈ε#d␈α␈igit␈αto␈αth␈α␈e␈αri␈α↓g␈α␈h␈α␈t,␈αplu␈α␈s␈α1.
␈β∞\␈↓ ↓Z␈ε)0␈α␈74␈↓ αf␈ε5D␈α␈ECX␈↓ βD␈ε51␈↓ ¬E␈ε)K␈↓ εp␈ε#If␈αsum␈αis␈ε7␈α∀␈α	␈␈ε)␈α↓b␈ε#,␈αcarry␈ε7␈α␈␈ε#1␈α␈.
␈β∂∧␈↓ ↓Z␈ε)0␈α␈75␈↓ αf␈ε5A␈α␈DD␈↓ βD␈ε5U,3␈↓ ∧[␈ε#(␈↓ ∧f␈ε)M␈↓ ¬∪␈ε#+␈αλ1)(␈↓ ¬c␈ε)N␈↓ ε
␈ε#+␈αλ1)␈↓ εp␈ε#Add␈↓ π8␈ε)u␈↓ π}␈ε#.
␈β∂⊂␈↓ πL␈ε,i␈ε&␈α␈+␈↓ πp␈ε,j
␈β∂,␈↓ ↓Z␈ε)0␈α␈76␈↓ αf␈ε5A␈α␈DD␈↓ βD␈ε5WM1␈↓ ∧[␈ε#(␈↓ ∧f␈ε)M␈↓ ¬∪␈ε#+␈αλ1)(␈↓ ¬c␈ε)N␈↓ ε
␈ε#+␈αλ1)␈↓ εp␈ε#Add␈ε)␈α
b␈ε7␈αλ␈␈ε#␈αλ1␈α
to␈αforce␈α
+␈αsign␈α␈.
␈β∂S␈↓ ↓Z␈ε)0␈α␈77␈↓ αf␈ε5J␈α␈NOV␈↓ βD␈ε5*+2␈↓ ∧[␈ε#(␈↓ ∧f␈ε)M␈↓ ¬∪␈ε#+␈αλ1)(␈↓ ¬c␈ε)N␈↓ ε
␈ε#+␈αλ1)␈↓ εp␈ε#If␈αn␈α↓o␈αo␈α}v␈α␈er⎇␈α␈o␈α␈w,␈αcarry␈ε7␈α
␈␈ε#␈α↓1␈α␈.
␈β∂u␈↓ ¬a␈ε:0
␈β∂{␈↓ ↓Z␈ε)0␈α␈78␈↓ αf␈ε5I␈α␈NCX␈↓ βD␈ε51␈↓ ¬A␈ε)K␈↓ εp␈ε#rX␈↓ π≡␈ε7⊃␈↓ πI␈ε#ca␈α␈rry␈↓ λ≠␈ε#+␈αλ1.
␈β⊂"␈↓ ↓Z␈ε)0␈α␈79␈↓ αf␈ε5S␈α␈TA␈↓ βD␈ε5U,3␈↓ ∧[␈ε#(␈↓ ∧f␈ε)M␈↓ ¬∪␈ε#+␈αλ1)(␈↓ ¬c␈ε)N␈↓ ε
␈ε#+␈αλ1)␈↓ εp␈ε)u␈↓ π?␈ε7␈ ␈↓ πi␈ε#rA␈↓ λ→␈ε#(ma␈α␈y␈αb␈α␈e␈αmin␈α␈u␈α␈s␈αzero␈α␈).
␈β⊂.␈↓ πβ␈ε,i␈ε&+␈↓ π(␈ε,j
␈β⊂J␈↓ ↓Z␈ε)0␈α␈80␈↓ αf␈ε5D␈α␈EC1␈↓ βD␈ε51␈↓ ∧[␈ε#(␈↓ ∧f␈ε)M␈↓ ¬∪␈ε#+␈αλ1)(␈↓ ¬c␈ε)N␈↓ ε
␈ε#+␈αλ1)
␈β⊂r␈↓ ↓Z␈ε)0␈α␈81␈↓ αf␈ε5D␈α␈EC3␈↓ βD␈ε51␈↓ ∧[␈ε#(␈↓ ∧f␈ε)M␈↓ ¬∪␈ε#+␈αλ1)(␈↓ ¬c␈ε)N␈↓ ε
␈ε#+␈αλ1)
␈β⊃→␈↓ ↓Z␈ε)0␈α␈82␈↓ αf␈ε5J␈α␈1NN␈↓ βD␈ε52B␈↓ ∧[␈ε#(␈↓ ∧f␈ε)M␈↓ ¬∪␈ε#+␈αλ1)(␈↓ ¬c␈ε)N␈↓ ε
␈ε#+␈αλ1)␈↓ εp␈ε#Rep␈α␈eat␈αfo␈α␈r␈ε)␈αn␈ε7␈α	∃␈ε)␈α
i␈ε7␈α	∃␈ε#␈α	0.
␈β∪(

␈β↓U␈↓ ↓H␈ε"260␈↓ 
b␈ε"4.3.1
␈β↓\␈↓ α=␈ε∞ARITH␈α↓MET␈α↓IC
␈βα&␈↓ ↓Z␈ε)0␈α␈83␈↓ α-␈ε5D5␈↓ αf␈ε5L␈α␈DA␈↓ βD␈ε5QHAT␈↓ ¬"␈ε)M␈↓ ¬O␈ε#+␈αλ1␈↓ εp␈ε0D5.␈α∂T␈α⎇est␈αrem␈α␈aind␈α␈er.
␈βαE␈↓ εp␈∧αEεpαα&
␈βαN␈↓ ↓Z␈ε)0␈α␈84␈↓ αf␈ε5S␈α␈TA␈↓ βD␈ε5Q+M,2␈↓ ¬"␈ε)M␈↓ ¬O␈ε#+␈αλ1␈↓ εp␈ε#Se␈α␈t␈↓ π)␈ε)q␈↓ πQ␈ε7␈ ␈↓ π|␈ε#∂␈↓ π|␈ε)q␈↓ λ∞␈ε#.
␈βαY␈↓ π:␈ε,j
␈βαu␈↓ ↓Z␈ε)0␈α␈85␈↓ αf␈ε5J␈α␈XP␈↓ βD␈ε5D7␈↓ ¬"␈ε)M␈↓ ¬O␈ε#+␈αλ1␈↓ εp␈ε#(Here␈↓ πI␈ε#rX␈↓ πw␈ε#=␈α
0␈α
or␈α1,␈αsince␈↓ 	\␈ε)v␈↓ 
¬␈ε#=␈α
0.)
␈ββ↓␈↓ 	m␈ε&0
␈ββ≥␈↓ ↓Z␈ε)0␈α␈86␈↓ α-␈ε5D6␈↓ αf␈ε5D␈α␈ECA␈↓ βD␈ε51␈↓ εp␈ε0D6.␈α∂Ad␈α␈d␈αb␈α␈ack␈α␈.
␈ββ<␈↓ εp␈∧β<εpα↓W
␈ββD␈↓ ↓Z␈ε)0␈α␈87␈↓ αf␈ε5S␈α␈TA␈↓ βD␈ε5Q+M,2␈↓ εp␈ε#Se␈α␈t␈↓ π)␈ε)q␈↓ πQ␈ε7␈ ␈↓ π|␈ε#∂␈↓ π|␈ε)q␈↓ λ∃␈ε7␈␈ε#␈αλ1␈α␈.
␈ββP␈↓ π:␈ε,j
␈ββl␈↓ ↓Z␈ε)0␈α␈88␈↓ αf␈ε5E␈α␈NT1␈↓ βD␈ε5N␈↓ εp␈ε)i␈ε7␈α	␈ ␈ε)␈α
n␈ε#.
␈β∧∀␈↓ ↓Z␈ε)0␈α␈89␈↓ αf␈ε5E␈α␈NT3␈↓ βD␈ε5M+N,2␈↓ εp␈ε#(␈ε)i␈ε#␈απ+␈↓ π7␈ε)j␈↓ πG␈ε#)␈ε7␈α	␈ ␈ε#␈α
(␈ε)n␈ε#␈απ+␈↓ λU␈ε)j␈↓ λe␈ε#).
␈β∧;␈↓ ↓Z␈ε)0␈α␈90␈↓ α-␈ε51H␈↓ αf␈ε5E␈α␈NTA␈↓ βD␈ε50␈↓ εp␈ε#(This␈αis␈αessen␈α}ti␈α↓a␈α␈ll␈α↓y␈α
P␈α↓ro␈α␈gra␈α␈m␈αA.␈α↓)
␈β∧c␈↓ ↓Z␈ε)0␈α␈91␈↓ α-␈ε52H␈↓ αf␈ε5A␈α␈DD␈↓ βD␈ε5U,3
␈β¬
␈↓ ↓Z␈ε)0␈α␈92␈↓ αf␈ε5A␈α␈DD␈↓ βD␈ε5V,1
␈β¬2␈↓ ↓Z␈ε)0␈α␈93␈↓ αf␈ε5S␈α␈TA␈↓ βD␈ε5U,3
␈β¬Z␈↓ ↓Z␈ε)0␈α␈94␈↓ αf␈ε5D␈α␈EC1␈↓ βD␈ε51
␈βε↓␈↓ ↓Z␈ε)0␈α␈95␈↓ αf␈ε5D␈α␈EC3␈↓ βD␈ε51
␈βε)␈↓ ↓Z␈ε)0␈α␈96␈↓ αf␈ε5J␈α␈NOV␈↓ βD␈ε51B
␈βεP␈↓ ↓Z␈ε)0␈α␈97␈↓ αf␈ε5E␈α␈NTA␈↓ βD␈ε51
␈βεx␈↓ ↓Z␈ε)0␈α␈98␈↓ αf␈ε5J␈α␈1NN␈↓ βD␈ε52B
␈βπ ␈↓ ↓Z␈ε)0␈α␈99␈↓ α-␈ε5D7␈↓ αf␈ε5I␈α␈NC2␈↓ βD␈ε51␈↓ ¬"␈ε)M␈↓ ¬O␈ε#+␈αλ1␈↓ εp␈ε0D7.␈α∂Lo␈α↓o␈↓ πi␈ε0p␈↓ λπ␈ε0o␈α␈n␈↓ λ5␈ε)j␈↓ λE␈ε0.
␈βπ?␈↓ εp␈∧π?εpαz␈↓ πq␈∧π?πqαE␈↓ λ=␈∧π?λ=α⊃
␈βπG␈↓ ↓Z␈ε)1␈α␈00␈↓ αf␈ε5J␈α␈2NP␈↓ βD␈ε5D3␈↓ ¬"␈ε)M␈↓ ¬O␈ε#+␈αλ1␈↓ εp␈ε#Rep␈α␈eat␈αfo␈α␈r␈α0␈ε7␈αλ∀␈↓ λ[␈ε)j␈↓ λt␈ε7∀␈ε)␈α	m␈ε#.
␈βπo␈↓ ↓Z␈ε)1␈α␈01␈↓ α-␈ε5D8␈↓ αf␈ε7↓␈α¬↓␈αε↓␈↓ εp␈ε#(Se␈α␈e␈αexe␈α␈rcise␈α26)
␈βπv␈↓ 	∧␈∧πv	∧≠∂
␈βλ2␈↓ α␈ε"Note␈αh␈α↓o␈α␈w␈αeasily␈αthe␈αrather␈αcomplex-appearing␈αcalculations␈αand␈αdecisions␈αof
␈βλ]␈↓ ↓H␈ε"step␈αD3␈αcan␈αbe␈αhandled␈αinside␈αthe␈αmachine.␈α∂Note␈αalso␈αthat␈αthe␈αprogram␈αfor␈αstep
␈β	λ␈↓ ↓H␈ε"D4␈α∞is␈α∂analogous␈α∂to␈α∂Program␈α∂M␈↓ ¬8␈ε",␈α∂except␈α∂that␈α∂the␈α∞ideas␈α∂of␈α∂Program␈α∂S␈α∂ha␈α␈v␈α␈e␈α∞also
␈β	3␈↓ ↓H␈ε"been␈αincorporated.
␈β	←␈↓ α␈ε"The␈αrunning␈αtime␈α
for␈αProgram␈αD␈αcan␈αbe␈α
estimated␈αby␈αconsidering␈αthe␈α
quan-
␈β
∧␈↓ ¬¬␈ε90
␈β

␈↓ ↓H␈ε"tities␈↓ α%␈ε(M␈↓ αN␈ε",␈↓ αh␈ε(N␈↓ β␈ε",␈↓ β%␈ε(E␈↓ βA␈ε",␈↓ β\␈ε(K␈↓ β␈␈ε",␈α⊂and␈↓ ∧b␈ε(K␈↓ ¬≡␈ε"sh␈α↓o␈α␈wn␈α⊂in␈α∂the␈α∂program.␈α (These␈α∂quan␈α␈tities␈α∂ign␈α↓ore
␈β
5␈↓ ↓H␈ε"sev␈α␈eral␈α⊂situations␈α⊂that␈α⊂occur␈α⊂only␈α⊂with␈α⊃v␈α␈ery␈α⊂lo␈α␈w␈α⊂probabilit␈α␈y;␈α∩for␈α⊂example,␈α⊃w␈α␈e
␈β
a␈↓ ↓H␈ε"ma␈α␈y␈α
assume␈αthat␈α
lines␈α048↑050,␈α063↑064,␈αand␈α
step␈αD6␈α
are␈αnev␈α␈er␈α
executed.)␈α∀Here
␈β␈↓ ↓H␈ε(M␈↓ ↓z␈ε"+␈α
1␈α⊂is␈α∂the␈α∂n␈α␈um␈α␈ber␈α∂of␈α∂w␈α␈ords␈α∂in␈α∂the␈α∂quotien␈α␈t;␈↓ πX␈ε(N␈↓ λ
␈ε"is␈α∂the␈α∂n␈α␈um␈α␈ber␈α∂of␈α∂w␈α␈ords␈α∂in
␈β7␈↓ ↓H␈ε"the␈α∞divisor;␈↓ β␈ε(E␈↓ β6␈ε"is␈α∞the␈α∂n␈α␈um␈α␈ber␈α∞of␈α∂times␈↓ ε0␈ε(q␈↓ ε1␈ε"∂␈↓ εR␈ε"is␈α∂adjusted␈α∞do␈α␈wn␈α␈w␈α␈ards␈α∂in␈α∞step␈α∂D3;␈↓ 	␈ε(K
␈β\␈↓ α3␈ε90
␈βb␈↓ ↓H␈ε"and␈↓ α⊂␈ε(K␈↓ αK␈ε"are␈α∞the␈α∞n␈α␈um␈α␈ber␈α∞of␈α∞times␈α∂certain␈α∞\carry"␈α∞adjustmen␈α␈ts␈α∞are␈α∞made␈α∞during
␈βπ␈↓ λ'␈ε90
␈β
␈↓ ↓H␈ε"the␈α
m␈α␈ultiply-subtract␈αlo␈α↓op.␈α∪If␈α
w␈α␈e␈α
assume␈α
that␈↓ π,␈ε(K␈↓ πW␈ε"+␈↓ λ∧␈ε(K␈↓ λ=␈ε"is␈α
appro␈α␈ximately␈α
(␈↓ 
]␈ε(N␈↓ λ␈ε"+
␈β4␈↓ εj␈ε%1
␈β9␈↓ ↓H␈ε"1)(␈↓ ↓r␈ε(M␈↓ α$␈ε"+␈α
1),␈α⊂and␈α∂that␈↓ ∧$␈ε(E␈↓ ∧O␈ε"is␈α∂appro␈α␈ximately␈↓ ε}␈ε(M␈↓ π&␈ε",␈α⊂w␈α␈e␈α∂get␈α∂a␈α∂total␈α∂running␈α∂time␈α∞of
␈βI␈↓ εj␈ε%2
␈βM␈↓ εj␈∧Mεjα⊂
␈βd␈↓ ↓H␈ε"appro␈α␈ximately
␈β
⊃␈↓ ∧O␈ε"30␈↓ ∧s␈ε(M␈↓ ¬≤␈ε(N␈↓ ¬G␈ε"+␈αλ30␈↓ ε↔␈ε(N␈↓ εB␈ε"+␈αλ89␈↓ π∩␈ε(M␈↓ πC␈ε"+␈αλ111
␈β
W␈↓ ↓H␈ε"cy␈α␈cles,␈α
plus␈α	67␈↓ β#␈ε(N␈↓ βJ␈ε"+␈αβ235␈↓ ∧'␈ε(M␈↓ ∧S␈ε"+␈αβ4␈α
m␈α↓ore␈α	if␈ε(␈α
d␈ε"␈α
>␈α
1.␈α⊃(The␈α
program␈α	segmen␈α␈ts␈α
of␈α	exercises
␈β∞α␈↓ ↓H␈ε"25␈αand␈α
26␈αare␈α
included␈αin␈α
these␈αtotals.)␈α~When␈↓ π4␈ε(M␈↓ πi␈ε"and␈↓ λ0␈ε(N␈↓ λ←␈ε"are␈α
large,␈αthis␈α
is␈αonly
␈β∞-␈↓ ↓H␈ε"about␈α⊃sev␈α␈en␈α∩percen␈α␈t␈α∩longer␈α∩than␈α⊃the␈α∩time␈α∩Program␈α∩M␈α⊃tak␈α␈es␈α∩to␈α∩m␈α␈ultiply␈α⊃the
␈β∞X␈↓ ↓H␈ε"quotien␈α␈t␈αby␈αthe␈αdivisor.
␈β∂∧␈↓ α␈ε"F␈α⎇urther␈α∞commen␈α␈tary␈α∞on␈α∞Algorithm␈α∂D␈α∞appears␈α∞in␈α∞the␈α∞exercises␈α∞at␈α∞the␈α∞close
␈β∂/␈↓ ↓H␈ε"of␈αthis␈αsection.
␈β∂h␈↓ α␈ε"It␈α
is␈α∞possible␈α
to␈α∞debug␈α
programs␈α∞for␈α
m␈α␈ultiple-precision␈α∞arithmetic␈α
by␈α
using
␈β⊂∪␈↓ ↓H␈ε"the␈α∪m␈α␈ultiplication␈α∪and␈α∪addition␈α∪routines␈α∪to␈α∀check␈α∪the␈α∪result␈α∪of␈α∪the␈α∪division
␈β⊂>␈↓ ↓H␈ε"routine,␈αetc.␈α⊂The␈αfollo␈α␈wing␈αt␈α␈ype␈αof␈αtest␈αdata␈αis␈αoccasionally␈αuseful:
␈β⊃∞␈↓ ∧ε␈ε+m␈↓ ¬
␈ε+n␈↓ ε8␈ε+m␈ε%+␈ε+n␈↓ πF␈ε+n␈↓ λ≤␈ε+m
␈β⊃⊗␈↓ βl␈ε"(␈↓ βx␈ε(t␈↓ ∧*␈ε6␈␈ε"␈αλ1)(␈↓ ¬␈ε(t␈↓ ¬)␈ε6␈␈ε"␈αλ1)␈α
=␈↓ ε+␈ε(t␈↓ π
␈ε6␈␈↓ π9␈ε(t␈↓ πb␈ε6␈␈↓ λ∞␈ε(t␈↓ λ@␈ε"+␈αλ1.
␈β∪(

␈β↓U␈↓ ↓H␈ε"4.3.1␈↓ 
v␈ε"261
␈β↓\␈↓ ε[␈ε∞T␈α↓HE␈α
CL␈α↓AS␈α␈SICA␈α↓L␈α
AL␈α␈G␈α↓ORITH␈α↓MS
␈βα$␈↓ ↓H␈ε"If␈ε(␈αm␈ε"␈α	<␈ε(␈α
n␈ε",␈αthis␈αn␈α␈um␈α␈ber␈αhas␈αthe␈αradix-␈ε(t␈ε"␈αexpansion
␈βαy␈↓ α≠␈ε"(␈ε(t␈ε6␈αλ␈␈ε"␈αλ1)␈↓ β*␈ε".␈αε.␈αε.␈↓ βx␈ε"(␈ε(t␈ε6␈αλ␈␈ε"␈αλ1)␈↓ ¬π␈ε"(␈ε(t␈ε6␈α	␈␈ε"␈αλ2)␈↓ ε↔␈ε"(␈ε(t␈ε6␈αλ␈␈ε"␈αλ1)␈↓ π&␈ε".␈αε.␈αε.␈↓ πt␈ε"(␈ε(t␈ε6␈αλ␈␈ε"␈αλ1)␈↓ 	β␈ε"0␈↓ 	9␈ε".␈αε.␈αε.␈↓ 
π␈ε"0␈↓ 
=␈ε"1;
␈ββ$␈↓ α≠␈ε↓|␈↓ β/␈ε↓{z␈↓ ∧S␈ε↓⎇␈↓ ε↔␈ε↓|␈↓ π+␈ε↓{z␈↓ λO␈ε↓⎇␈↓ 	β␈ε↓|␈↓ 	>␈ε↓{z␈↓ 
	␈ε↓⎇
␈ββ=␈↓ α+␈∧β=α+ε↓∧␈↓ βO␈∧β=βOε↓∧␈↓ ε'␈∧β=ε'ε↓∧␈↓ πK␈∧β=πKε↓∧␈↓ 	∪␈∧β=	∪ε+␈↓ 	↑␈∧β=	↑ε+
␈ββP␈↓ αW␈ε(m␈ε6␈αλ␈␈ε"␈αλ1␈αplaces␈↓ εQ␈ε(n␈ε6␈αλ␈␈ε(␈αλm␈ε"␈αplaces␈↓ λf␈ε(m␈ε6␈αλ␈␈ε"␈αλ1␈αplaces
␈β∧$␈↓ βM␈ε%3␈↓ ∧c␈ε%5
␈β∧*␈↓ ↓H␈ε"for␈α∞example,␈α∂(1␈↓ β;␈ε"0␈↓ βh␈ε6␈␈ε"␈α	1)(1␈↓ ∧Q␈ε"0␈↓ ∧}␈ε6␈␈ε"␈α	1)␈α∞=␈α∞99899001.␈α_In␈α∞the␈α∂case␈α∞of␈α∂Program␈α∞D␈↓ 
U␈ε",␈α∂it␈α∞is
␈β∧V␈↓ ↓H␈ε"also␈α
necessary␈αto␈α|nd␈αsome␈α
test␈αcases␈αthat␈αcause␈αthe␈α
rarely␈αexecuted␈αparts␈αof␈α
the
␈β¬↓␈↓ ↓H␈ε"program␈α
to␈α∞be␈α∞exercised;␈α∞some␈α∞portions␈α
of␈α∞that␈α∞program␈α
w␈α␈ould␈α∞probably␈α
nev␈α␈er
␈β¬,␈↓ ↓H␈ε"get␈αtested␈αev␈α␈en␈αif␈αa␈αmillion␈αrandom␈αtest␈αcases␈αw␈α␈ere␈αtried.
␈β¬Y␈↓ α␈ε"No␈α␈w␈α⊃that␈α⊃w␈α␈e␈α⊃ha␈α␈v␈α␈e␈α⊃seen␈α⊃h␈α↓o␈α␈w␈α⊃to␈α⊃operate␈α⊃with␈α⊃signed-magnitude␈α⊂n␈α␈um␈α␈bers,
␈βε∧␈↓ ↓H␈ε"let␈α∂us␈α⊂consider␈α∂what␈α∂approach␈α⊂sh␈α↓ould␈α∂be␈α⊂tak␈α␈en␈α∂to␈α⊂the␈α∂same␈α⊂problems␈α∂when␈α∂a
␈βε/␈↓ ↓H␈ε"computer␈α
with␈↓ β=␈ε"complemen␈α␈t␈α∞n␈α↓otation␈α∞is␈α
being␈α∞used.␈α∃F␈α⎇or␈↓ λJ␈ε"t␈α␈w␈α␈o's␈α∞complemen␈α␈t␈α
and
␈βεZ␈↓ ↓H␈ε"ones'␈α⊂complemen␈α␈t␈α⊂n␈α↓otations,␈α∩it␈α⊂is␈α⊃usually␈α⊂best␈α⊂to␈α⊃let␈α⊂the␈α⊂radix␈ε(␈α⊃b␈ε"␈α⊂be␈ε/␈α⊃one␈α⊂half
␈βε␈␈↓ 
↑␈ε%31
␈βπ¬␈↓ ↓H␈ε"of␈α⊂the␈α⊃w␈α␈ord␈α⊂size;␈α∪th␈α␈us␈α⊂for␈α⊃a␈α⊃32-bit␈α⊂computer␈α⊃w␈α␈ord␈α⊂w␈α␈e␈α⊃w␈α␈ould␈α⊂use␈ε(␈α⊃b␈ε"␈α⊃=␈↓ 
L␈ε"2␈↓ ∞␈ε"in
␈βπ1␈↓ ↓H␈ε"the␈α⊂abo␈α␈v␈α␈e␈α⊂algorithms.␈α≤The␈α⊂sign␈α⊂bit␈α⊂of␈α⊂all␈α⊂but␈α⊂the␈α⊂m␈α↓ost␈α⊂signi|can␈α␈t␈α⊂w␈α␈ord␈α⊂of␈α⊂a
␈βπ\␈↓ ↓H␈ε"m␈α␈ultiple-precision␈α⊂n␈α␈um␈α␈ber␈α⊃will␈α⊃be␈α⊂zero,␈α∩so␈α⊃that␈α⊂n␈α↓o␈α⊃an␈α↓omalous␈α⊃sign␈α⊂correction
␈βλπ␈↓ ↓H␈ε"tak␈α␈es␈α⊃place␈α⊂during␈α⊃the␈α⊃computer's␈α⊃m␈α␈ultiplication␈α⊃and␈α⊃division␈α⊃operations.␈α≡In
␈βλ2␈↓ ↓H␈ε"fact,␈α
the␈α
basic␈α
meaning␈α
of␈αcomplemen␈α␈t␈α
n␈α↓otation␈α
requires␈α
that␈α
w␈α␈e␈α
consider␈α
all␈α
but
␈βλ]␈↓ ↓H␈ε"the␈α∞m␈α↓ost␈α∂signi|can␈α␈t␈α∂w␈α␈ord␈α∂to␈α∂be␈α∂n␈α↓onnegativ␈α␈e.␈α_F␈α⎇or␈α∂example,␈α⊂assuming␈α∂an␈α∞8-bit
␈β		␈↓ ↓H␈ε"w␈α␈ord,␈αthe␈αt␈α␈w␈α␈o's␈αcomplemen␈α␈t␈αn␈α␈um␈α␈ber
␈β	c␈↓ ∧P␈ε"11011111␈α$1111110␈α$1101011
␈β
>␈↓ ↓H␈ε"(where␈αλthe␈α	sign␈αλbit␈α	is␈αλsh␈α↓o␈α␈wn␈α	only␈α	in␈αλthe␈α	m␈α↓ost␈αλsigni|can␈α␈t␈α	w␈α␈ord)␈αλis␈α	properly␈αλth␈α↓ough␈α␈t
␈β
i␈↓ ↓H␈ε"of␈αas
␈β⊃␈↓ β3␈ε%2␈α↓1␈↓ ¬Z␈ε%14␈↓ λ↓␈ε%7
␈β→␈↓ α⎇␈ε6␈␈↓ β!␈ε"2␈↓ β[␈ε"+␈αλ(1011111␈↓ ¬⊃␈ε")␈↓ ¬6␈ε6↓␈↓ ¬H␈ε"2␈↓ εα␈ε"+␈αλ(1111110␈↓ π8␈ε")␈↓ π]␈ε6↓␈↓ πo␈ε"2␈↓ λ~␈ε"+␈αλ(1101011␈↓ 	P␈ε")␈↓ 	m␈ε".
␈β%␈↓ ¬≥␈ε%2␈↓ πD␈ε%2␈↓ 	\␈ε%2
␈βc␈↓ α␈ε"Addition␈α⊂of␈α⊂signed␈α⊂n␈α␈um␈α␈bers␈α∂is␈α⊂sligh␈α␈tly␈α⊂easier␈α⊂when␈α⊂complemen␈α␈t␈α∂n␈α↓otations
␈β∞␈↓ ↓H␈ε"are␈αbeing␈αused,␈αsince␈αthe␈αroutine␈αfor␈αadding␈ε(␈αn␈ε"-place␈αn␈α↓onnegativ␈α␈e␈αin␈α␈tegers␈αcan␈αbe
␈β9␈↓ ↓H␈ε"used␈α∞for␈α∂arbitrary␈ε(␈α∂n␈ε"␈α␈-place␈α∂in␈α␈tegers;␈α⊂the␈α∂sign␈α∂appears␈α∞only␈α∂in␈α∂the␈α∞|rst␈α∂w␈α␈ord,␈α∂so
␈βe␈↓ ↓H␈ε"the␈αless␈αsigni|can␈α␈t␈αw␈α␈ords␈α
ma␈α␈y␈αbe␈αadded␈αtogether␈α
irrespectiv␈α␈e␈αof␈αthe␈αactual␈αsign.
␈β
⊂␈↓ ↓H␈ε"(Special␈α
atten␈α␈tion␈α∞m␈α␈ust␈α∞be␈α∞giv␈α␈en␈α∞to␈α
the␈α∞le$m␈α↓ost␈α∞carry␈α∞when␈α∞ones'␈α
complemen␈α␈t
␈β
;␈↓ ↓H␈ε"n␈α↓otation␈α∩is␈α∩being␈α∩used,␈α∀h␈α↓o␈α␈w␈α␈ev␈α␈er;␈α∃it␈α∩m␈α␈ust␈α∩be␈α∩added␈α∩in␈α␈to␈α∩the␈α∩least␈α∩signi|can␈α␈t
␈β
f␈↓ ↓H␈ε"w␈α␈ord,␈α∀and␈α∩possibly␈α∩propagated␈α∩further␈α∪to␈α∩the␈α∩le$.)␈α%Similarly,␈α∀w␈α␈e␈α∩|nd␈α∩that
␈β∞⊃␈↓ ↓H␈ε"subtraction␈α∩of␈α⊃signed␈α∩n␈α␈um␈α␈bers␈α∩is␈α∩sligh␈α␈tly␈α∩simpler␈α∩with␈α∩complemen␈α␈t␈α⊃n␈α↓otation.
␈β∞=␈↓ ↓H␈ε"On␈α⊃the␈α⊃other␈α⊃hand,␈α∩m␈α␈ultiplication␈α⊃and␈α⊃division␈α⊃seem␈α⊃to␈α⊃be␈α⊃done␈α⊂m␈α↓ost␈α⊃easily
␈β∞h␈↓ ↓H␈ε"by␈α⊃w␈α␈orking␈α∩with␈α∩n␈α↓onnegativ␈α␈e␈α∩quan␈α␈tities␈α⊃and␈α∩doing␈α∩suitable␈α⊃complemen␈α␈tation
␈β∂∪␈↓ ↓H␈ε"operations␈αbeforehand␈αto␈αmak␈α␈e␈αsure␈αthat␈αboth␈αoperands␈αare␈αn␈α↓onnegativ␈α␈e;␈αit␈αma␈α␈y
␈β∂>␈↓ ↓H␈ε"be␈α
possible␈α∞to␈α∞a␈α␈v␈α␈oid␈α∞this␈α∞complemen␈α␈tation␈α
by␈α∞devising␈α∞some␈α∞tricks␈α∞for␈α
w␈α␈orking
␈β∂i␈↓ ↓H␈ε"directly␈αwith␈αnegativ␈α␈e␈αn␈α␈um␈α␈bers␈αin␈α
a␈αcomplemen␈α␈t␈αn␈α↓otation,␈αand␈α
it␈αis␈αn␈α↓ot␈αhard␈αto
␈β⊂∃␈↓ ↓H␈ε"see␈α
h␈α↓o␈α␈w␈α
this␈α
could␈α
be␈α
done␈α
in␈α
double-precision␈α
m␈α␈ultiplication,␈α
but␈α
care␈α
sh␈α↓ould␈α
be
␈β⊂@␈↓ ↓H␈ε"tak␈α␈en␈α
n␈α↓ot␈α
to␈α
slo␈α␈w␈α∞do␈α␈wn␈α
the␈α
inner␈α
lo␈α↓ops␈α
of␈α∞the␈α
subroutines␈α
when␈α
high␈α
precision
␈β⊂k␈↓ ↓H␈ε"is␈αrequired.␈α∂Note␈αthat␈αthe␈αproduct␈αof␈αt␈α␈w␈α␈o␈ε(␈αm␈ε"-place␈αn␈α␈um␈α␈bers␈αin␈α
t␈α␈w␈α␈o's␈αcomplemen␈α␈t
␈β⊃⊂␈↓ λ.␈ε+m␈↓ 	∃␈ε%2␈ε+m
␈β⊃⊗␈↓ ↓H␈ε"n␈α↓otation␈αma␈α␈y␈αrequire␈α2␈ε(m␈ε"␈απ+␈αλ1␈αplaces:␈αthe␈αsquare␈αof␈α(␈ε6␈␈↓ λ≡␈ε(b␈↓ λJ␈ε")␈αis␈↓ 	ε␈ε(b␈↓ 	A␈ε".
␈β∪(

␈β↓U␈↓ ↓H␈ε"262␈↓ 
b␈ε"4.3.1
␈β↓\␈↓ α=␈ε∞ARITH␈α↓MET␈α↓IC
␈βα$␈↓ α␈ε"Let␈αus␈αn␈α↓o␈α␈w␈αturn␈αto␈αan␈αanalysis␈αof␈↓ ε"␈ε"the␈αquan␈α␈tit␈α␈y␈↓ πn␈ε(K␈↓ λ≥␈ε"that␈αarises␈αin␈αProgram␈αA␈↓ "␈ε",
␈βαO␈↓ ↓H␈ε"i.e.,␈α
the␈αn␈α␈um␈α␈ber␈α
of␈↓ βp␈ε"carries␈αthat␈α
occur␈αwhen␈α
t␈α␈w␈α␈o␈ε(␈αn␈ε"␈α␈-place␈αn␈α␈um␈α␈bers␈α
are␈αbeing␈α
added
␈βαz␈↓ ↓H␈ε"together.␈α_Alth␈α↓ough␈↓ ∧∞␈ε(K␈↓ ∧@␈ε"has␈α∞n␈α↓o␈α∂e{ect␈α∂on␈α∂the␈α∞total␈α∂running␈α∂time␈α∂of␈α∂Program␈α∞A␈↓ "␈ε",
␈ββ&␈↓ ↓H␈ε"it␈α
does␈α
a{ect␈α
the␈α∞running␈α
time␈α
of␈α
the␈α
Program␈α∞A's␈α
coun␈α␈terparts␈α
that␈α
deal␈α
with
␈ββQ␈↓ ↓H␈ε"complemen␈α␈t␈α⊂n␈α↓otations,␈α∩and␈α⊃its␈α⊂analysis␈α⊃is␈α⊂in␈α␈teresting␈α⊃in␈α⊃itself␈α⊂as␈α⊃a␈α⊂signi|can␈α␈t
␈ββ|␈↓ ↓H␈ε"application␈αof␈↓ β,␈ε"generating␈αfunctions.
␈β∧'␈↓ α␈ε"Suppose␈α∞that␈ε(␈α
u␈ε"␈α
and␈↓ ∧S␈ε(v␈↓ ∧s␈ε"are␈α∞independen␈α␈t␈α∞random␈ε(␈α
n␈ε"-place␈α
in␈α␈tegers,␈α∞uniformly
␈β∧L␈↓ ε∀␈ε+n
␈β∧R␈↓ ↓H␈ε"distributed␈αin␈αthe␈αrange␈α0␈ε6␈α
∀␈ε(␈α
u␈ε",␈↓ ¬9␈ε(v␈↓ ¬V␈ε"<␈↓ ε∧␈ε(b␈↓ ε(␈ε".␈α⊂Let␈↓ π∧␈ε(p␈↓ πG␈ε"be␈αthe␈αprobabilit␈α␈y␈αthat␈αexactly
␈β∧←␈↓ π⊗␈ε+n␈↓ π)␈ε+k
␈β∧}␈↓ ↓H␈ε(k␈↓ ↓k␈ε"carries␈α∞occur␈α∂in␈α∂the␈α∂addition␈α∞of␈ε(␈α∂u␈ε"␈α∂to␈↓ ε?␈ε(v␈↓ εR␈ε",␈ε/␈α⊂and␈ε"␈α∂that␈α∞one␈α∂of␈α∂these␈α∂carries␈α∞occurs
␈β¬#␈↓ πp␈ε+n
␈β¬)␈↓ ↓H␈ε"in␈α
the␈α
m␈α↓ost␈α
signi|can␈α␈t␈αposition␈α
(so␈α
that␈ε(␈α
u␈ε"␈α	+␈↓ π∩␈ε(v␈↓ π1␈ε6∃␈↓ π`␈ε(b␈↓ λ∧␈ε").␈α∪Similarly,␈α
let␈↓ 
ε␈ε(q␈↓ 
I␈ε"be␈α
the
␈β¬5␈↓ 
_␈ε+n␈↓ 
*␈ε+k
␈β¬T␈↓ ↓H␈ε"probabilit␈α␈y␈α
that␈α
exactly␈↓ ∧N␈ε(k␈↓ ∧o␈ε"carries␈α∞occur,␈α
but␈α
that␈α
there␈α∞is␈α
n␈α↓o␈α
carry␈α
in␈α
the␈α
m␈α↓ost
␈β¬␈␈↓ ↓H␈ε"signi|can␈α␈t␈αposition.␈α⊂Then␈αit␈αis␈αn␈α↓ot␈αhard␈αto␈αsee␈αthat
␈βεG␈↓ ∧π␈ε(p␈↓ ∧D␈ε"=␈α
0,␈↓ ¬V␈ε(q␈↓ ε∪␈ε"=␈↓ εA␈ε(∞␈↓ εr␈ε",␈↓ πJ␈ε"for␈αall␈↓ λ4␈ε(k␈↓ λH␈ε";
␈βεS␈↓ ∧→␈ε%0␈↓ ∧(␈ε+k␈↓ ¬h␈ε%0␈↓ ¬w␈ε+k␈↓ εP␈ε%0␈↓ ε`␈ε+k
␈βεq␈↓ ¬n␈ε(b␈ε"␈αλ+␈αλ1␈↓ π6␈ε(b␈ε6␈αλ␈␈ε"␈αλ1
␈βπ	␈↓ βx␈ε(p␈↓ ¬<␈ε"=␈↓ εG␈ε(p␈↓ πε␈ε"+␈↓ λ∂␈ε(q␈↓ λF␈ε",␈↓ α␈ε"(3)
␈βπ⊗␈↓ ∧
␈ε%(␈ε+␈α↓n␈ε%␈α␈+1)(␈↓ ∧i␈ε+k␈↓ ∧y␈ε%+1)␈↓ εY␈ε+n␈↓ εl␈ε+k␈↓ λ!␈ε+n␈↓ λ4␈ε+k
␈βπ≡␈↓ ¬n␈∧π≡¬nαV␈↓ π6␈∧π≡π6αV
␈βπ#␈↓ ελ␈ε"2␈ε(b␈↓ πP␈ε"2␈ε(b
␈βπG␈↓ ¬n␈ε(b␈ε6␈αλ␈␈ε"␈αλ1␈↓ π6␈ε(b␈ε"␈αλ+␈αλ1
␈βπ←␈↓ ∧:␈ε(q␈↓ ¬<␈ε"=␈↓ εG␈ε(p␈↓ πε␈ε"+␈↓ λ∂␈ε(q␈↓ λF␈ε";
␈βπk␈↓ ∧L␈ε%(␈ε+n␈ε%+␈α␈1␈α↓)␈↓ ¬ ␈ε+k␈↓ εY␈ε+n␈↓ εl␈ε+k␈↓ λ!␈ε+n␈↓ λ4␈ε+k
␈βπs␈↓ ¬n␈∧πs¬nαV␈↓ π6␈∧πsπ6αV
␈βπx␈↓ ελ␈ε"2␈ε(b␈↓ πP␈ε"2␈ε(b
␈βλ;␈↓ ↓H␈ε"this␈α	happens␈α	because␈α
(␈ε(b␈ε6␈αα␈␈ε"␈αβ1)/2␈ε(b␈ε"␈α
is␈α	the␈α	probabilit␈α␈y␈α	that␈↓ λ∩␈ε(u␈↓ λ:␈ε"+␈↓ λa␈ε(v␈↓ 	
␈ε6∃␈ε(␈α
b␈ε"␈α	and␈α
(␈ε(b␈ε"␈αβ+␈αα1)/2␈ε(b
␈βλG␈↓ λ'␈ε%1␈↓ λr␈ε%1
␈βλf␈↓ ↓H␈ε"is␈αthe␈αprobabilit␈α␈y␈αthat␈↓ ∧/␈ε(u␈↓ ∧\␈ε"+␈↓ ¬π␈ε(v␈↓ ¬1␈ε"+␈αλ1␈ε6␈α
∃␈ε(␈α
b␈ε",␈αwhen␈↓ π*␈ε(u␈↓ π[␈ε"and␈↓ λ!␈ε(v␈↓ λO␈ε"are␈αindependen␈α␈tly␈αand
␈βλr␈↓ ∧D␈ε%1␈↓ ¬→␈ε%1␈↓ π>␈ε%1␈↓ λ2␈ε%1
␈β	⊃␈↓ ↓H␈ε"uniformly␈αdistributed␈αin␈α␈tegers␈αin␈αthe␈αrange␈α0␈ε6␈α
∀␈↓ π>␈ε(u␈↓ πc␈ε",␈↓ πs␈ε(v␈↓ λ ␈ε"<␈ε(␈α
b␈ε".
␈β	≡␈↓ πR␈ε%1␈↓ λ¬␈ε%1
␈β	<␈↓ α␈ε"T␈α⎇o␈α
obtain␈α
further␈α
information␈α
about␈α
these␈αquan␈α␈tities␈↓ λ\␈ε(p␈↓ 	 ␈ε"and␈↓ 	g␈ε(q␈↓ 
≥␈ε",␈α∞w␈α␈e␈αma␈α␈y
␈β	I␈↓ λn␈ε+n␈↓ 	↓␈ε+k␈↓ 	y␈ε+n␈↓ 
␈ε+k
␈β	h␈↓ ↓H␈ε"set␈αup␈αthe␈αgenerating␈αfunctions
␈β
∀␈↓ ∧L␈ε↓X␈↓ π⎇␈ε↓X
␈β
/␈↓ ¬U␈ε+k␈↓ ¬t␈ε+n␈↓ 	ε␈ε+k␈↓ 	&␈ε+n
␈β
7␈↓ β0␈ε(P␈↓ βL␈ε"(␈↓ βX␈ε(z␈↓ βj␈ε",␈ε(␈αεt␈ε"␈α↓)␈α
=␈↓ ¬ε␈ε(p␈↓ ¬B␈ε(z␈↓ ¬g␈ε(t␈↓ ε	␈ε",␈ε(␈↓ εaQ␈ε"(␈↓ π	␈ε(z␈↓ π≤␈ε",␈ε(␈αεt␈ε")␈α
=␈↓ λ7␈ε(q␈↓ λt␈ε(z␈↓ 	→␈ε(t␈↓ 	:␈ε".␈↓ α␈ε"(4)
␈β
C␈↓ ¬_␈ε+n␈↓ ¬*␈ε+k␈↓ λI␈ε+n␈↓ λ\␈ε+k
␈β
g␈↓ ∧O␈ε+k␈↓ ∧←␈ε%,␈ε+n␈↓ λ␈ε+k␈↓ λ⊃␈ε%,␈ε+n
␈β+␈↓ ↓H␈ε"F␈α⎇rom␈α(3)␈αw␈α␈e␈αha␈α␈v␈α␈e␈αthe␈αbasic␈αrelations
␈βv␈↓ ¬λ␈ε↓∩␈↓ λU␈ε↓∪
␈βw␈↓ ¬"␈ε(b␈ε"␈α	+␈αλ1␈↓ π↔␈ε(b␈ε6␈αλ␈␈ε"␈αλ1
␈β∂␈↓ βG␈ε(P␈↓ βb␈ε"(␈↓ βn␈ε(z␈↓ ∧↓␈ε",␈ε(␈αεt␈ε")␈↓ ∧4␈ε"=␈↓ ∧b␈ε(z␈↓ ∧u␈ε(t␈↓ ¬|␈ε(P␈↓ ε↔␈ε"(␈↓ ε#␈ε(z␈↓ ε6␈ε",␈ε(␈αεt␈ε")␈αλ+␈↓ πp␈ε(Q␈ε"␈α↓(␈↓ λ→␈ε(z␈↓ λ,␈ε",␈ε(␈αεt␈ε")␈↓ λq␈ε",
␈β$␈↓ ¬"␈∧$¬"αV␈↓ π↔␈∧$π↔αV
␈β)␈↓ ¬<␈ε"2␈ε(b␈↓ π1␈ε"2␈ε(b
␈βf␈↓ ¬<␈ε↓∩␈↓ 	λ␈ε↓∪
␈βg␈↓ ¬V␈ε(b␈ε6␈αλ␈␈ε"␈αλ1␈↓ πJ␈ε(b␈ε"␈α	+␈αλ1
␈β␈␈↓ βF␈ε(Q␈ε"(␈↓ βn␈ε(z␈↓ ∧↓␈ε",␈ε(␈αεt␈ε")␈↓ ∧4␈ε"=␈α
1␈αλ+␈ε(␈αλt␈↓ ε/␈ε(P␈↓ εJ␈ε"(␈↓ εV␈ε(z␈↓ εi␈ε",␈ε(␈αεt␈ε")␈αλ+␈↓ λ$␈ε(Q␈ε"(␈↓ λL␈ε(z␈↓ λ←␈ε",␈ε(␈αεt␈ε")␈↓ 	$␈ε".
␈β
∪␈↓ ¬V␈∧
∪¬VαV␈↓ πJ␈∧
∪πJαV
␈β
→␈↓ ¬p␈ε"2␈ε(b␈↓ πd␈ε"2␈ε(b
␈β
d␈↓ ↓H␈ε"These␈αt␈α␈w␈α␈o␈αequations␈αare␈αreadily␈αsolv␈α␈ed␈αfor␈↓ εk␈ε(P␈↓ πε␈ε"(␈↓ π∩␈ε(z␈↓ π%␈ε",␈ε(␈αεt␈ε")␈αand␈ε(␈αQ␈ε"␈α↓(␈↓ λI␈ε(z␈↓ λ[␈ε",␈ε(␈αεt␈ε"␈α↓);␈αand␈αif␈αw␈α␈e␈αlet
␈β∞⊂␈↓ πB␈ε↓X
␈β∞+␈↓ λe␈ε+n
␈β∞3␈↓ βq␈ε(G␈ε"␈α↓(␈↓ ∧~␈ε(z␈↓ ∧-␈ε",␈ε(␈αεt␈ε")␈α
=␈↓ ¬∞␈ε(P␈↓ ¬)␈ε"(␈↓ ¬5␈ε(z␈↓ ¬H␈ε",␈ε(␈αεt␈ε")␈αλ+␈ε(␈αλQ␈ε"␈α↓(␈↓ εN␈ε(z␈↓ εa␈ε",␈ε(␈αεt␈ε")␈α
=␈↓ π|␈ε(G␈↓ λ-␈ε"(␈↓ λ9␈ε(z␈↓ λK␈ε")␈↓ λW␈ε(t␈↓ λy␈ε",
␈β∞?␈↓ λ_␈ε+n
␈β∞c␈↓ πR␈ε+n
␈β∂"␈↓ ↓H␈ε"where␈↓ α4␈ε(G␈↓ αe␈ε"(␈↓ αq␈ε(z␈↓ β∧␈ε")␈α⊃is␈α⊂the␈α⊃generating␈α⊃function␈α⊃for␈α⊃the␈α⊂total␈α⊃n␈α␈um␈α␈ber␈α⊃of␈α⊃carries␈α⊂when
␈β∂.␈↓ αQ␈ε+n
␈β∂M␈↓ ↓H␈ε(n␈ε"␈α␈-place␈αn␈α␈um␈α␈bers␈αare␈αadded,␈αw␈α␈e␈α|nd␈αthat
␈β⊂⊗␈↓ 
7␈ε%2
␈β⊂↔␈↓ πe␈ε%1
␈β⊂≤␈↓ ↓l␈ε(G␈ε"(␈↓ α∀␈ε(z␈↓ α'␈ε",␈ε(␈αεt␈ε")␈α
=␈α
(␈ε(b␈ε6␈αλ␈␈↓ βW␈ε(z␈↓ βj␈ε(t␈ε")/␈ε(p␈ε"(␈↓ ∧3␈ε(z␈↓ ∧F␈ε",␈ε(␈αεt␈ε"),␈↓ ¬#␈ε"where␈↓ ε␈ε(p␈ε"(␈↓ ε)␈ε(z␈↓ ε<␈ε",␈ε(␈αεt␈ε")␈α
=␈ε(␈α
b␈ε6␈α	␈␈↓ πx␈ε"(1␈αλ+␈ε(␈αλb␈ε")(1␈αλ+␈↓ 	7␈ε(z␈↓ 	J␈ε")␈ε(t␈ε"␈αλ+␈↓ 
↔␈ε(z␈↓ 
*␈ε(t␈↓ 
H␈ε".␈↓ α␈ε"(5)
␈β⊂-␈↓ πe␈ε%2
␈β⊂0␈↓ πe␈∧⊂0πeα⊂
␈β⊂k␈↓ ↓H␈ε"Note␈α∞that␈ε(␈α∞G␈ε"␈α↓(1,␈ε(␈αεt␈ε")␈α∞=␈α∞1/(1␈ε6␈α
␈␈ε(␈α	t␈ε"␈α↓),␈α∂and␈α∞this␈α∞checks␈α∂with␈α∞the␈α∂fact␈α∞that␈↓ 	v␈ε(G␈↓ 
'␈ε"(1)␈α∞m␈α␈ust
␈β⊂w␈↓ 
∪␈ε+n
␈β⊃⊗␈↓ ↓H␈ε"equal␈α
1␈α(it␈α
is␈αthe␈αsum␈α
of␈αall␈α
the␈αpossible␈αprobabilities).␈α∂T␈α⎇aking␈αpartial␈α
deriv␈α}ativ␈α␈es
␈β∪(

␈β↓U␈↓ ↓H␈ε"4.3.1␈↓ 
v␈ε"263
␈β↓\␈↓ ε[␈ε∞T␈α↓HE␈α
CL␈α↓AS␈α␈SICA␈α↓L␈α
AL␈α␈G␈α↓ORITH␈α↓MS
␈βα"␈↓ ↓H␈ε"of␈α(5)␈αwith␈αrespect␈αto␈↓ ∧ ␈ε(z␈↓ ∧2␈ε",␈αw␈α␈e␈α|nd␈αthat
␈βαl␈↓ β0␈ε↓X
␈βαv␈↓ αB␈ε(%␈↓ αX␈ε(G␈↓ ¬2␈ε6␈␈ε(t␈↓ ε4␈ε(t␈ε"(␈ε(b␈ε6␈αλ␈␈↓ π⊂␈ε(z␈↓ π#␈ε(t␈ε")(␈ε(b␈ε"␈αλ+␈αλ1␈ε6␈αλ␈␈ε"␈αλ2␈ε(t␈ε"␈α↓)
␈ββε␈↓ ∧π␈ε90␈↓ ∧N␈ε+n
␈ββ∞␈↓ βα␈ε"=␈↓ βj␈ε(G␈↓ ∧⊗␈ε"(␈↓ ∧"␈ε(z␈↓ ∧4␈ε")␈↓ ∧@␈ε(t␈↓ ∧l␈ε"=␈↓ ε∧␈ε"+␈↓ 	↓␈ε";
␈ββ≡␈↓ ∧↓␈ε+n
␈ββ"␈↓ αB␈∧β"αBα3␈↓ ¬≡␈∧β"¬≡αZ␈↓ ε4␈∧β"ε4ααJ
␈ββ$␈↓ λε␈ε%2
␈ββ'␈↓ αG␈ε(%␈↓ α]␈ε(z␈↓ ¬≡␈ε(p␈ε"(␈↓ ¬<␈ε(z␈↓ ¬N␈ε",␈ε(␈αεt␈ε"␈α↓)␈↓ π~␈ε"2␈ε(p␈ε"(␈↓ πJ␈ε(z␈↓ π]␈ε",␈ε(␈αεt␈↓ πz␈ε")
␈ββ>␈↓ β@␈ε+n
␈ββY␈↓ β0␈ε↓X
␈ββ]␈↓ αG␈ε%2␈↓ ¬R␈ε%2␈↓ πl␈ε%2
␈ββc␈↓ α1␈ε(%␈↓ αX␈ε(G␈↓ ¬!␈ε6␈␈↓ ¬E␈ε(t␈↓ ¬c␈ε"(␈ε(b␈ε"␈αλ+␈αλ1␈ε6␈αλ␈␈ε"␈αλ2␈ε(t␈ε")␈↓ π←␈ε(t␈↓ π⎇␈ε"(␈ε(b␈ε6␈αλ␈␈↓ λL␈ε(z␈↓ λ←␈ε(t␈ε")(␈ε(b␈ε"␈α	+␈αλ1␈ε6␈αλ␈␈ε"␈αλ2␈ε(t␈ε")
␈ββs␈↓ ∧π␈ε900␈↓ ∧P␈ε+n
␈ββ{␈↓ βα␈ε"=␈↓ βj␈ε(G␈↓ ∧_␈ε"(␈↓ ∧$␈ε(z␈↓ ∧7␈ε")␈↓ ∧C␈ε(t␈↓ ∧o␈ε"=␈↓ π/␈ε"+␈↓ 
=␈ε".
␈β∧␈↓ ∧↓␈ε+n
␈β∧∂␈↓ α1␈∧∧∂α1αD␈↓ ¬!␈∧∧∂¬!ααβ␈↓ π←␈∧∧∂π←ααZ
␈β∧⊃␈↓ α←␈ε%2␈↓ εF␈ε%2␈↓ 	1␈ε%3
␈β∧∀␈↓ α6␈ε(%␈↓ αL␈ε(z␈↓ ¬l␈ε(p␈ε"(␈↓ ε
␈ε(z␈↓ ε≥␈ε",␈ε(␈αεt␈↓ ε:␈ε")␈↓ λW␈ε(p␈ε"(␈↓ λu␈ε(z␈↓ 	π␈ε",␈ε(␈αεt␈↓ 	%␈ε")
␈β∧+␈↓ β@␈ε+n
␈β∧p␈↓ ↓H␈ε"No␈α␈w␈αlet␈αus␈αput␈↓ β?␈ε(z␈↓ β[␈ε"=␈α
1␈αand␈αexpand␈αin␈αpartial␈αfractions:
␈β¬9␈↓ ↓p␈ε↓X
␈β¬B␈↓ βs␈ε↓∩␈↓ 	3␈ε↓∪
␈β¬C␈↓ β←␈ε(t␈↓ ∧B␈ε"1␈↓ ε(␈ε"1␈↓ λ;␈ε"1
␈β¬S␈↓ αF␈ε90␈↓ β␈ε+n
␈β¬[␈↓ α*␈ε(G␈↓ αU␈ε"(1)␈↓ α␈␈ε(t␈↓ β+␈ε"=␈↓ ¬∃␈ε6␈␈↓ π)␈ε"+␈↓ 	O␈ε",
␈β¬l␈↓ αA␈ε+n
␈β¬o␈↓ β]␈∧¬oβ]α∩␈↓ ∧
␈∧¬o∧
α⎇␈↓ ¬E␈∧¬o¬Eα↓Y␈↓ πY␈∧¬oπYα↓V
␈β¬q␈↓ ∧x␈ε%2
␈β¬u␈↓ β]␈ε"2␈↓ ∧
␈ε"(1␈ε6␈αλ␈␈ε(␈αλt␈↓ ∧l␈ε")␈↓ ¬E␈ε"(␈ε(b␈ε6␈αλ␈␈ε"␈αλ1)(1␈ε6␈αλ␈␈ε(␈αλt␈ε")␈↓ πY␈ε"(␈ε(b␈ε6␈αλ␈␈ε"␈αλ1)(␈ε(b␈ε6␈α	␈␈ε(␈αλt␈ε")
␈βε␈↓ α␈ε+n
␈βε&␈↓ ↓m␈ε↓X
␈βε*␈↓ βj␈ε%2
␈βε/␈↓ β␈␈ε↓∩
␈βε0␈↓ β]␈ε(t␈↓ ∧N␈ε"1␈↓ ε<␈ε"1␈↓ λ`␈ε"1
␈βε@␈↓ αD␈ε900␈↓ β␈ε+n
␈βεH␈↓ α'␈ε(G␈↓ αU␈ε"(1)␈↓ α␈␈ε(t␈↓ β+␈ε"=␈↓ ¬!␈ε6␈␈↓ πF␈ε"+
␈βεY␈↓ α>␈ε+n
␈βε\␈↓ β]␈∧ε\β]α∨␈↓ ∧→␈∧ε\∧→α⎇␈↓ ¬Q␈∧ε\¬Qα↓j␈↓ πv␈∧ε\πvα↓g
␈βε↑␈↓ ¬∧␈ε%3␈↓ ε>␈ε%2␈↓ λc␈ε%2
␈βεb␈↓ βc␈ε"2␈↓ ∧→␈ε"(1␈ε6␈αλ␈␈ε(␈αλt␈↓ ∧x␈ε")␈↓ ¬Q␈ε"(␈ε(b␈ε6␈αλ␈␈ε"␈αλ1␈↓ ε2␈ε")␈↓ εO␈ε"(1␈ε6␈αλ␈␈ε(␈αλt␈ε")␈↓ πv␈ε"(␈ε(b␈ε6␈αλ␈␈ε"␈αλ1␈↓ λW␈ε")␈↓ λt␈ε"(␈ε(b␈ε6␈αλ␈␈ε(␈αλt␈ε"␈α↓)
␈βεy␈↓ ↓⎇␈ε+n
␈βπ∀␈↓ 
a␈ε↓∪
␈βπ∃␈↓ 	a␈ε"1
␈βπ-␈↓ λF␈ε"+␈↓ 
⎇␈ε".
␈βπA␈↓ λv␈∧πAλvα↓g
␈βπC␈↓ 
L␈ε%2
␈βπG␈↓ λv␈ε"(␈ε(b␈ε6␈α	␈␈ε"␈αλ1)(␈ε(b␈ε6␈αλ␈␈ε(␈αλt␈↓ 
@␈ε")
␈βλ_␈↓ ↓H␈ε"It␈αfollo␈α␈ws␈αthat␈αthe␈αa␈α␈v␈α␈erage␈αn␈α␈um␈α␈ber␈αof␈αcarries,␈αi.e.,␈αthe␈αmean␈αv␈α}alue␈αof␈↓ 
β␈ε(K␈↓ 
&␈ε",␈αis
␈βλj␈↓ ¬2␈ε↓␈ ␈↓ λ∩␈ε+n␈↓ λB␈ε↓!
␈βλu␈↓ εp␈ε↓∩␈↓ πL␈ε↓∩␈↓ π|␈ε↓∪␈↓ λ,␈ε↓∪
␈βλv␈↓ ¬≤␈ε"1␈↓ ε8␈ε"1␈↓ πf␈ε"1
␈β	ε␈↓ ∧'␈ε90
␈β	∞␈↓ ∧␈ε(G␈↓ ∧6␈ε"(1)␈α
=␈↓ ¬I␈ε(n␈ε6␈αλ␈␈↓ πε␈ε"1␈ε6␈αλ␈␈↓ λ←␈ε";␈↓ α␈ε"(6)
␈β	∨␈↓ ∧"␈ε+n
␈β	"␈↓ ¬≤␈∧	"¬≤α∩␈↓ ε↔␈∧	"ε↔αV␈↓ πf␈∧	"πfα∩
␈β	'␈↓ ¬≤␈ε"2␈↓ ε↔␈ε(b␈ε6␈αλ␈␈ε"␈αλ1␈↓ πg␈ε(b
␈β
β␈↓ ↓H␈ε"the␈αv␈α}ariance␈αis
␈β
J␈↓ ↓v␈ε900␈↓ βα␈ε90␈↓ ∧␈ε90␈↓ ∧D␈ε%2
␈β
R␈↓ ↓Z␈ε(G␈↓ αλ␈ε"(1)␈αλ+␈↓ αf␈ε(G␈↓ β⊃␈ε"(1)␈ε6␈αλ␈␈↓ βo␈ε(G␈↓ ∧~␈ε"(1␈↓ ∧8␈ε")
␈β
c␈↓ ↓q␈ε+n␈↓ α⎇␈ε+n␈↓ ∧ε␈ε+n
␈β¬␈↓ α↑␈ε↓␈ ␈↓ πV␈ε+n␈↓ 	j␈ε%2␈ε+n␈↓ 

␈ε↓!
␈β⊂␈↓ π⊂␈ε↓∩␈↓ π@␈ε↓∪␈↓ 	$␈ε↓∩␈↓ 	T␈ε↓∪
␈β⊃␈↓ αH␈ε"1␈↓ βY␈ε"2␈ε(n␈↓ ∧←␈ε"2␈ε(b␈ε"␈αλ+␈αλ1␈↓ ε→␈ε"2␈ε(b␈ε"␈αλ+␈αλ2␈↓ π*␈ε"1␈↓ λX␈ε"1␈↓ 	>␈ε"1
␈β)␈↓ α⊗␈ε"=␈↓ αu␈ε(n␈ε"␈απ+␈↓ ∧$␈ε6␈␈↓ ¬↑␈ε"+␈↓ πr␈ε6␈␈↓ 
*␈ε".␈↓ α(7)
␈β=␈↓ αH␈∧=αHα∩␈↓ βB␈∧=βBαV␈↓ ∧T␈∧=∧Tα␈␈↓ ε∞␈∧=ε∞α␈␈↓ π*␈∧=π*α∩␈↓ λ"␈∧=λ"α␈␈↓ 	>␈∧=	>α∩
␈β?␈↓ ¬A␈ε%2␈↓ ε{␈ε%2␈↓ 	∂␈ε%2
␈βC␈↓ αH␈ε"4␈↓ βB␈ε(b␈ε6␈α	␈␈ε"␈αλ1␈↓ ∧T␈ε"(␈ε(b␈ε6␈αλ␈␈ε"␈αλ1␈↓ ¬5␈ε")␈↓ ε∞␈ε"(␈ε(b␈ε6␈αλ␈␈ε"␈αλ1␈↓ εo␈ε")␈↓ π+␈ε(b␈↓ λ"␈ε"(␈ε(b␈ε6␈αλ␈␈ε"␈αλ1␈↓ 	β␈ε")␈↓ 	?␈ε(b
␈β≥␈↓ πZ␈ε%1
␈β"␈↓ ↓H␈ε"So␈αthe␈αn␈α␈um␈α␈ber␈αof␈αcarries␈αis␈αjust␈αsligh␈α␈tly␈αless␈αthan␈↓ πm␈ε(n␈ε"␈αunder␈αthese␈αassumptions.
␈β2␈↓ πZ␈ε%2
␈β6␈↓ πZ␈∧6πZα⊂
␈βd␈↓ ↓H␈ε2History␈α
and␈α
bibliograph␈α␈y.␈ε"␈α∩The␈α
early␈α
history␈α
of␈α	the␈α
classical␈α
algorithms␈α
described
␈β
∂␈↓ ↓H␈ε"in␈α
this␈α
section␈α
is␈α	le$␈α
as␈α
an␈α
in␈α␈teresting␈α
project␈α
for␈α
the␈α
reader,␈αand␈α
only␈α	the␈α
history
␈β
;␈↓ ↓H␈ε"of␈αtheir␈αimplemen␈α␈tation␈αon␈αcomputers␈αwill␈αbe␈αtraced␈αhere.
␈β
`␈↓ βg␈ε+n
␈β
f␈↓ α␈ε"The␈α∞use␈α
of␈α∞1␈↓ βU␈ε"0␈↓ ∧λ␈ε"as␈α∞an␈α∞assumed␈α
radix␈α∞when␈α
m␈α␈ultiplying␈α∞large␈α
n␈α␈um␈α␈bers␈α∞on␈α
a
␈β∞⊃␈↓ ↓H␈ε"desk␈α
calculator␈α∞w␈α␈as␈α∞discussed␈α∞by␈α∞D.␈α
N.␈↓ εB␈ε"Lehmer␈α∞and␈α∞J.␈α∞P.␈↓ λi␈ε"Ballan␈α␈tine,␈ε/␈α∂AMM␈ε2␈α
30
␈β∞<␈↓ ↓H␈ε"(1923),␈α67↑69.
␈β∞h␈↓ α␈ε"Double-precision␈αarithmetic␈αon␈αdigital␈α
computers␈αw␈α␈as␈α|rst␈αtreated␈αby␈αJ.␈↓ 
t␈ε"v␈α␈on
␈β∂∪␈↓ ↓H␈ε"Neumann␈α∩and␈α∩H.␈α∩H.␈↓ ∧*␈ε"Goldstine␈α∩in␈α∩their␈α∩in␈α␈troductory␈α⊃n␈α↓otes␈α∩on␈α∩programming,
␈β∂>␈↓ ↓H␈ε"originally␈α⊃published␈α∩in␈α⊃1947␈α∩[J.␈α∩v␈α␈on␈α⊃Neumann,␈ε/␈α∪Collected␈α∩W␈α⎇orks␈ε2␈α⊃5␈ε",␈α∪142↑151].
␈β∂i␈↓ ↓H␈ε"Theorems␈α⊂A␈α⊃and␈α⊂B␈α⊃abo␈α␈v␈α␈e␈α⊂are␈α⊃due␈α⊂to␈α⊃D.␈α⊃A.␈↓ π≤␈ε"Pope␈α⊃and␈α⊂M.␈α⊃L.␈↓ 	2␈ε"Stein␈α⊃[␈ε/CA␈α␈CM␈ε2␈α⊂3
␈β⊂∃␈↓ ↓H␈ε"(1960),␈α⊂652↑654],␈α⊂wh␈α↓ose␈α⊂paper␈α∂also␈α⊂con␈α␈tains␈α∂a␈α⊂bibliograph␈α␈y␈α∂of␈α⊂earlier␈α∂w␈α␈ork␈α∂on
␈β⊂@␈↓ ↓H␈ε"double-precision␈α
routines.␈α⊂Other␈αw␈α␈a␈α␈ys␈α
of␈αch␈α↓o␈α↓osing␈αthe␈α
trial␈αquotien␈α␈t␈↓ 	u␈ε"∂␈↓ 	u␈ε(q␈↓ 
∪␈ε"ha␈α␈v␈α␈e␈α
been
␈β⊂k␈↓ ↓H␈ε"discussed␈α
by␈α
A.␈αG.␈↓ βr␈ε"Co␈α␈x␈α
and␈αH.␈α
A.␈↓ ¬]␈ε"Luther,␈ε/␈α
CA␈α␈CM␈ε2␈α4␈ε"␈α
(1961),␈α353␈α
[divide␈α
by␈↓ 
K␈ε(v␈↓ 
r␈ε"+␈α∧1
␈β⊂w␈↓ 
\␈ε%1
␈β⊃⊗␈↓ ↓H␈ε"instead␈α∞of␈↓ αs␈ε(v␈↓ β⊗␈ε"],␈α∂and␈α∂by␈α∂M.␈α∞L.␈↓ ¬!␈ε"Stein,␈ε/␈α⊂CA␈α␈CM␈ε2␈α∂7␈ε"␈α∞(1964),␈α⊂472↑474␈α∂[divide␈α∂by␈↓ 
[␈ε(v␈↓ ␈ε"or
␈β⊃#␈↓ β¬␈ε%1␈↓ 
m␈ε%1
␈β∪(

␈β↓U␈↓ ↓H␈ε"264␈↓ 
b␈ε"4.3.1
␈β↓\␈↓ α=␈ε∞ARITH␈α↓MET␈α↓IC
␈βα"␈↓ ↓H␈ε(v␈↓ ↓n␈ε"+␈α∧1␈α
according␈αto␈α
the␈α
magnitude␈α
of␈↓ ε⊃␈ε(v␈↓ ε3␈ε"];␈αE.␈α
V.␈↓ π,␈ε"Krishnam␈α␈urth␈α␈y␈α
[␈ε/CA␈α␈CM␈ε2␈α
8␈ε"␈α
(1965),
␈βα/␈↓ ↓Y␈ε%1␈↓ ε"␈ε%2
␈βαM␈↓ ↓H␈ε"179↑181]␈α
sh␈α↓o␈α␈w␈α␈ed␈α
that␈α
examination␈α
of␈αthe␈α
single-precision␈α
remainder␈α
in␈α
the␈α
latter
␈βαy␈↓ ↓H␈ε"meth␈α↓od␈α
leads␈α∞to␈α
an␈α∞impro␈α␈v␈α␈emen␈α␈t␈α
o␈α␈v␈α␈er␈α∞Theorem␈α
B.␈α≤Krishnam␈α␈urth␈α␈y␈α∞and␈↓ 
L␈ε"Nandi
␈ββ$␈↓ ↓H␈ε"[␈ε/CA␈α␈CM␈ε2␈α∞10␈ε"␈α∂(1967),␈α∂809↑813]␈α∞suggested␈α∂a␈α∞w␈α␈a␈α␈y␈α∂to␈α∞replace␈α∞the␈α∂n␈α↓ormalization␈α∞and
␈ββO␈↓ ↓H␈ε"unn␈α↓ormalization␈α	operations␈α	of␈α	Algorithm␈α	D␈α	by␈α	a␈α
calculation␈α	of␈↓ 	⊗␈ε"∂␈↓ 	⊗␈ε(q␈↓ 	2␈ε"based␈α	on␈α	sev␈α␈eral
␈ββz␈↓ ↓H␈ε"leading␈αdigits␈αof␈αthe␈αoperands.␈α⊂G.␈αE.␈↓ ε∀␈ε"Collins␈αand␈αD.␈αR.␈↓ λ3␈ε"Musser␈αha␈α␈v␈α␈e␈αcarried␈αout
␈β∧%␈↓ ↓H␈ε"an␈αλin␈α␈teresting␈α	analysis␈αλof␈α	the␈αλoriginal␈α	Pope␈α	and␈αλStein␈α	algorithm␈αλ[␈ε/Inf.␈α	Proc.␈αλLetters
␈β∧Q␈↓ ↓H␈ε26␈ε"␈α(1977),␈α151↑155].
␈β∧|␈↓ α␈ε"Sev␈α␈eral␈αalternativ␈α␈e␈αmeth␈α↓ods␈αfor␈αdivision␈αha␈α␈v␈α␈e␈αalso␈αbeen␈αsuggested:
␈β¬2␈↓ ↓b␈ε"1)␈↓ α␈ε"\␈↓ α≡␈ε"F␈α⎇ourier␈α∩division"␈α∩[J.␈↓ ∧v␈ε"F␈α⎇ourier,␈ε/␈α∪Analyse␈α∩des␈↓ πT␈ε/∞␈↓ πU␈ε/e␈↓ πe␈ε/quations␈α∩d␈↓ 	∞␈ε/∞␈↓ 	∂␈ε/e␈↓ 	∨␈ε/termin␈↓ 
ε␈ε/∞␈↓ 
π␈ε/e␈↓ 
↔␈ε/es␈ε"␈α⊃(Paris,
␈β¬]␈↓ ↓H␈ε"1831),␈ε6␈α
x␈ε"2.21].␈α⊃This␈α	meth␈α↓od,␈α
which␈α
w␈α␈as␈α
o$en␈α	used␈α
on␈α
desk␈α	calculators,␈α
essen␈α␈tially
␈βελ␈↓ ↓H␈ε"obtains␈α
each␈α
new␈α
quotien␈α␈t␈α
digit␈α
by␈α
increasing␈α
the␈α
precision␈α
of␈α	the␈α
divisor␈α
and␈α
the
␈βε3␈↓ ↓H␈ε"dividend␈αat␈αeach␈αstep.␈α∂Some␈αrather␈αextensiv␈α␈e␈αtests␈αby␈αthe␈αauth␈α↓or␈αha␈α␈v␈α␈e␈αindicated
␈βε←␈↓ ↓H␈ε"that␈α∂such␈α⊂a␈α∂meth␈α↓od␈α⊂is␈α∂inferior␈α⊂to␈α∂the␈α⊂divide-and-correct␈α∂technique␈α⊂abo␈α␈v␈α␈e,␈α⊂but
␈βπ
␈↓ ↓H␈ε"there␈αma␈α␈y␈αbe␈αsome␈αapplications␈αin␈αwhich␈αF␈α⎇ourier␈αdivision␈αis␈αpractical.␈α⊂See␈αD.␈αH.
␈βπ5␈↓ ↓H␈ε"Lehmer,␈ε/␈α∞AMM␈ε2␈α
33␈ε"␈α∞(1926),␈α∞198↑206;␈α∞J.␈α
V.␈↓ εZ␈ε"Uspensky,␈ε/␈α∞Theory␈α
of␈α∞Equations␈ε"␈α
(New
␈βπ`␈↓ ↓H␈ε"Y␈α⎇ork:␈αMcGra␈α␈w-Hill,␈α1948),␈α159↑164.
␈βλ⊗␈↓ ↓b␈ε"2)␈↓ α␈ε"\␈↓ α≡␈ε"Newton's␈αλmeth␈α↓od"␈αλfor␈αλev␈α}aluating␈αλthe␈↓ ε`␈ε"reciprocal␈αλof␈αλa␈αλn␈α␈um␈α␈ber␈αλw␈α␈as␈αλextensiv␈α␈ely
␈βλA␈↓ ↓H␈ε"used␈αin␈αearly␈αcomputers␈αwhen␈αthere␈αw␈α␈as␈αn␈α↓o␈αsingle-precision␈αdivision␈αinstruction.
␈βλm␈↓ ↓H␈ε"The␈αidea␈αis␈αto␈α|nd␈αsome␈αinitial␈αappro␈α␈ximation␈↓ π"␈ε(x␈↓ πR␈ε"to␈αthe␈αn␈α␈um␈α␈ber␈α1/␈↓ 	`␈ε(v␈↓ 	s␈ε",␈αthen␈αto␈αlet
␈βλy␈↓ π6␈ε%0
␈β	∩␈↓ βa␈ε%2
␈β	_␈↓ ↓H␈ε(x␈↓ α'␈ε"=␈α
2␈↓ αg␈ε(x␈↓ β∪␈ε6␈␈↓ β;␈ε(v␈↓ βM␈ε(x␈↓ βv␈ε".␈α∂This␈α
meth␈α↓od␈α
con␈α␈v␈α␈erges␈α
rapidly␈α
to␈α
1/␈↓ λF␈ε(v␈↓ λY␈ε",␈α
since␈↓ 	C␈ε(x␈↓ 	u␈ε"=␈α
(1␈ε6␈α∧␈␈ε(␈α∧∂␈ε")/␈↓ ~␈ε(v
␈β	$␈↓ ↓\␈ε+n␈ε%␈α␈+1␈↓ α{␈ε+n␈↓ 	W␈ε+n
␈β	)␈↓ βa␈ε+n
␈β	=␈↓ ∧o␈ε%2
␈β	C␈↓ ↓H␈ε"implies␈α	that␈↓ β␈ε(x␈↓ βj␈ε"=␈α
(1␈ε6␈αβ␈␈↓ ∧a␈ε(∂␈↓ ¬␈ε")/␈↓ ¬≡␈ε(v␈↓ ¬1␈ε".␈α∂Con␈α␈v␈α␈ergence␈α
to␈α	third␈α
order,␈α
i.e.,␈α
with␈ε(␈α
∂␈ε"␈α	replaced
␈β	O␈↓ β∨␈ε+n␈ε%+␈α␈1
␈β	h␈↓ α2␈ε%3
␈β	n␈↓ ↓H␈ε"by␈↓ ↓{␈ε(O␈↓ α↔␈ε"(␈↓ α#␈ε(∂␈↓ αC␈ε")␈αat␈αeach␈αstep,␈αcan␈αbe␈αobtained␈αusing␈αthe␈αform␈α␈ula
␈β
=␈↓ λ}␈ε%2
␈β
E␈↓ β↑␈ε(x␈↓ ∧=␈ε"=␈↓ ∧k␈ε(x␈↓ ¬≤␈ε"+␈↓ ¬H␈ε(x␈↓ ¬p␈ε"(1␈ε6␈αλ␈␈↓ εB␈ε(v␈↓ εU␈ε(x␈↓ ε⎇␈ε")␈αλ+␈↓ π=␈ε(x␈↓ πe␈ε"(1␈ε6␈αλ␈␈↓ λ7␈ε(v␈↓ λJ␈ε(x␈↓ λr␈ε")
␈β
Q␈↓ βr␈ε+n␈ε%+1␈↓ ∧␈␈ε+n␈↓ ¬\␈ε+n␈↓ εi␈ε+n␈↓ πQ␈ε+n␈↓ λ↑␈ε+n
␈β
\␈↓ ¬~␈ε↓␈␈↓ λ}␈ε↓↓
␈β
{␈↓ ∧=␈ε"=␈↓ ∧k␈ε(x␈↓ ¬(␈ε"1␈αλ+␈αλ(1␈ε6␈αλ␈␈↓ ε@␈ε(v␈↓ εR␈ε(x␈↓ ε{␈ε")(1␈αλ+␈αλ(1␈ε6␈αλ␈␈↓ λ+␈ε(v␈↓ λ>␈ε(x␈↓ λf␈ε"))␈↓ 	␈ε",
␈βπ␈↓ ∧␈␈ε+n␈↓ εf␈ε+n␈↓ λR␈ε+n
␈βO␈↓ ↓H␈ε"and␈αsimilar␈αform␈α␈ulas␈αh␈α↓old␈αfor␈αfourth-order␈αcon␈α␈v␈α␈ergence,␈αetc.;␈αsee␈αP.␈αRabin␈α↓o␈α␈witz,
␈β{␈↓ ↓H␈ε/CA␈α␈CM␈ε2␈α⊂4␈ε"␈α⊃(1961),␈α⊃98.␈α≡F␈α⎇or␈α⊂calculations␈α⊂on␈α⊃extremely␈α⊂large␈α⊃n␈α␈um␈α␈bers,␈α⊃Newton's
␈β&␈↓ ↓H␈ε"second-order␈α∞meth␈α↓od␈α∂and␈α∂subsequen␈α␈t␈α∞m␈α␈ultiplication␈α∂by␈ε(␈α∂u␈ε"␈α∞can␈α∂actually␈α∂be␈α∞con-
␈βQ␈↓ ↓H␈ε"siderably␈α
faster␈α
than␈αAlgorithm␈α
D␈↓ ¬X␈ε",␈αif␈α
w␈α␈e␈α
increase␈α
the␈αprecision␈α
of␈↓ 	?␈ε(x␈↓ 	r␈ε"at␈α
each␈α
step
␈β]␈↓ 	S␈ε+n
␈β|␈↓ ↓H␈ε"and␈αλif␈α	w␈α␈e␈α	also␈αλuse␈α	the␈αλfast␈α	m␈α␈ultiplication␈α	routines␈αλof␈α	Section␈α	4.3.3.␈α
(See␈αλAlgorithm
␈β
'␈↓ ↓H␈ε"4.3.3D␈αfor␈α
details.)␈α⊗Some␈α
related␈αiterativ␈α␈e␈αschemes␈αha␈α␈v␈α␈e␈αbeen␈αdiscussed␈αby␈αE.␈α
V.
␈β
S␈↓ ↓H␈ε"Krishnam␈α␈urth␈α␈y,␈ε/␈αIEEE␈αT␈α⎇rans.␈ε2␈αC↑19␈ε"␈α(1970),␈α227↑231.
␈β∞	␈↓ ↓b␈ε"3)␈↓ α␈ε"Division␈αmeth␈α↓ods␈αha␈α␈v␈α␈e␈αalso␈αbeen␈αbased␈αon␈αthe␈αev␈α}aluation␈αof
␈β∞K␈↓ ¬\␈ε↓⊂␈↓ ε	␈ε↓⊃␈↓ εO␈ε↓⊂␈↓ ε|␈ε↓⊃␈↓ πS␈ε↓⊂␈↓ λ␈ε↓⊃
␈β∞[␈↓ ¬␈ε↓∩␈↓ π∞␈ε%2␈↓ λ∩␈ε%3␈↓ 	␈ε↓∪
␈β∞]␈↓ βr␈ε(u␈↓ ∧g␈ε(u␈↓ ¬t␈ε(∂␈↓ εg␈ε(∂␈↓ πk␈ε(∂
␈β∞u␈↓ ∧5␈ε"=␈↓ ¬⊗␈ε"1␈ε6␈αλ␈␈↓ ε#␈ε"+␈↓ π'␈ε6␈␈↓ λ*␈ε"+␈↓ λV␈ε6↓␈αε↓␈αε↓␈↓ 	≤␈ε".
␈β∂	␈↓ βR␈∧∂	βRαV␈↓ ∧g␈∧∂	∧gα∃␈↓ ¬r␈∧∂	¬rα∪␈↓ εe␈∧∂	εeα∪␈↓ πi␈∧∂	πiα∪
␈β∂∞␈↓ βR␈ε(v␈↓ βm␈ε"+␈ε(␈αλ∂␈↓ ∧h␈ε(v␈↓ ¬r␈ε(v␈↓ εe␈ε(v␈↓ πi␈ε(v
␈β∂`␈↓ ↓H␈ε"See␈α∞H.␈α∂H.␈↓ αp␈ε"Laughlin,␈ε/␈α⊂AMM␈ε2␈α∂37␈ε"␈α∞(1930),␈α⊂287↑293.␈α_W␈α⎇e␈α∂ha␈α␈v␈α␈e␈α∂used␈α∂this␈α∂idea␈α∂in␈α∞the
␈β⊂␈↓ ↓H␈ε"double-precision␈αcase␈α(Eq.␈α4.2.3↑3).
␈β⊂B␈↓ α␈ε"Besides␈α∪the␈α∪references␈α∪just␈α∪cited,␈α∃the␈α∪follo␈α␈wing␈α∪early␈α∩articles␈α∪concerning
␈β⊂m␈↓ ↓H␈ε"m␈α␈ultiple-precision␈αarithmetic␈αare␈αof␈αin␈α␈terest:␈αHigh-precision␈αroutines␈αfor␈α⎇oating
␈β⊃_␈↓ ↓H␈ε"poin␈α␈t␈α⊃calculations␈α⊃using␈↓ ∧V␈ε"ones'␈α⊃complemen␈α␈t␈α∩arithmetic␈α⊃are␈α⊃described␈α⊃by␈α⊃A.␈α⊃H.
␈β∪(

␈β↓U␈↓ ↓H␈ε"4.3.1␈↓ 
v␈ε"265
␈β↓\␈↓ ε[␈ε∞T␈α↓HE␈α
CL␈α↓AS␈α␈SICA␈α↓L␈α
AL␈α␈G␈α↓ORITH␈α↓MS
␈βα"␈↓ ↓H␈ε"Stroud␈α	and␈α	D.␈↓ β+␈ε"Secrest,␈ε/␈α	Comp.␈α	J.␈ε2␈α	6␈ε"␈α	(1963),␈α
62↑66.␈α∞Extended-precision␈α	subroutines
␈βαM␈↓ ↓H␈ε"for␈α∂use␈α∂in␈↓ ∧*␈ε"programs␈α∂are␈α∂described␈α∂by␈α∂B.␈α∂I.␈↓ λ7␈ε"Blum,␈ε/␈α⊂CA␈α␈CM␈ε2␈α∂8␈ε"␈α∂(1965),
␈βαO␈↓ αq␈ε#F␈α␈OR␈α⎇TRAN
␈βαy␈↓ ↓H␈ε"318↑320;␈α
and␈α
for␈α	use␈α
in␈↓ ¬7␈ε"by␈α
M.␈↓ ε≠␈ε"Tienari␈α
and␈α
V.␈↓ λλ␈ε"Suok␈α␈onautio,␈ε/␈α
BIT␈ε2␈α
6␈ε"␈α	(1966),
␈βα{␈↓ ∧6␈ε#ALGO␈α␈L
␈ββ$␈↓ ↓H␈ε"332↑338.␈α⊃Arithmetic␈αon␈α
in␈α␈tegers␈αwith␈ε/␈αunlimited␈ε"␈α
precision,␈αmaking␈α
use␈αof␈αlink␈α␈ed
␈ββO␈↓ ↓H␈ε"mem␈α↓ory␈α⊂allocation␈α∂techniques,␈α⊃has␈α⊂been␈α⊂elegan␈α␈tly␈α⊂described␈α⊂by␈α⊂G.␈α⊂E.␈↓ 
6␈ε"Collins,
␈ββz␈↓ ↓H␈ε/CA␈α␈CM␈ε2␈α9␈ε"␈α(1966),␈α
578↑589.␈α⊂F␈α⎇or␈α
a␈αm␈α␈uch␈αlarger␈α
repertoire␈αof␈αoperations,␈αincluding
␈β∧%␈↓ ↓H␈ε"logarithms␈α⊂and␈α⊃trigon␈α↓ometric␈α⊃functions,␈α∩see␈α⊃R.␈α⊃P.␈↓ λ∧␈ε"Bren␈α␈t,␈ε/␈α∩A␈α␈CM␈α⊃T␈α⎇rans.␈α⊂Math.
␈β∧Q␈↓ ↓H␈ε/So$␈α␈w␈α␈are␈ε2␈α4␈ε"␈α(1978),␈α57↑81.
␈β∧␈␈↓ α␈ε"W␈α⎇e␈α∂ha␈α␈v␈α␈e␈α⊂restricted␈α∂our␈α⊂discussion␈α∂in␈α⊂this␈α∂section␈α⊂to␈α∂arithmetic␈α∂techniques
␈β¬+␈↓ ↓H␈ε"for␈α⊂use␈α⊃in␈α⊃computer␈α⊂programming.␈α≡There␈α⊃are␈α⊂man␈α␈y␈α⊃algorithms␈α⊃for␈↓ 
≠␈ε/hardw␈α␈are
␈β¬V␈↓ ↓H␈ε"implemen␈α␈tation␈α∪of␈α∪arithmetic␈α∪operations␈α∀that␈α∪are␈α∪v␈α␈ery␈α∪in␈α␈teresting,␈α∃but␈α∪they
␈βε↓␈↓ ↓H␈ε"appear␈α∩to␈α⊃be␈α∩inapplicable␈α∩to␈α∩computer␈α∩programs␈α∩for␈α∩high-precision␈α⊃n␈α␈um␈α␈bers;
␈βε,␈↓ ↓H␈ε"for␈α⊂example,␈α⊂see␈α⊂G.␈α⊂W.␈↓ ∧R␈ε"Reit␈α␈wiesner,␈α⊃\Binary␈α⊂Arithmetic,"␈ε/␈α⊃Adv␈α}ances␈α⊂in␈α∂Com-
␈βεW␈↓ ↓H␈ε/puters␈ε2␈α∞1␈ε"␈α∂(New␈α∂Y␈α⎇ork:␈α∩Academic␈α∞Press,␈α⊂1960),␈α∂231↑308;␈α⊂O.␈α∂L.␈↓ 	≡␈ε"MacSorley,␈ε/␈α∂Proc.
␈βπβ␈↓ ↓H␈ε/IRE␈ε2␈α∩49␈ε"␈α∩(1961),␈α∪67↑91;␈α∃G.␈↓ ∧}␈ε"Metze,␈ε/␈α∪IRE␈α∩T␈α⎇rans.␈ε2␈α∩EC↑11␈ε"␈α∩(1962),␈α∀761↑764;␈α∀H.␈α∩L.
␈βπ.␈↓ ↓H␈ε"Garner,␈α∩\Num␈α␈ber␈α⊃Systems␈α⊃and␈α⊃Arithmetic,"␈ε/␈α∩Adv␈α}ances␈α⊃in␈α⊃Computers␈ε2␈α⊃6␈ε"␈α⊃(New
␈βπY␈↓ ↓H␈ε"Y␈α⎇ork:␈αAcademic␈αPress,␈α
1965),␈α131↑194.␈α⊂The␈αminim␈α␈um␈α
achiev␈α}able␈αexecution␈α
time
␈βλ∧␈↓ ↓H␈ε"for␈αhardw␈α␈are␈αaddition␈αand␈αm␈α␈ultiplication␈αoperations␈αhas␈αbeen␈αin␈α␈v␈α␈estigated␈αby␈αS.
␈βλ/␈↓ ↓H␈ε"Win␈α↓ograd,␈ε/␈αJA␈α␈CM␈ε2␈α12␈ε"␈α(1965),␈α277↑285,␈ε2␈α14␈ε"␈α(1967),␈α793↑802;␈αby␈αR.␈αP.␈↓ 	l␈ε"Bren␈α␈t,␈ε/␈αIEEE
␈βλ[␈↓ ↓H␈ε/T␈α⎇rans.␈ε2␈αC↑19␈ε"␈α
(1970),␈α
758↑759;␈α∞and␈αby␈α
R.␈α
W.␈↓ π	␈ε"Flo␈α␈yd,␈ε/␈α
IEEE␈α
Symp.␈α
F␈α⎇ound.␈αComp.
␈β	ε␈↓ ↓H␈ε/Sci.␈ε2␈α16␈ε"␈α(1975),␈α3↑5.
␈β
3␈↓ ↓H␈ε=E␈α␈XERCISES
␈β∪␈↓ ↓g␈ε31.␈↓ α␈ε#[␈ε)42␈↓ α;␈ε#]␈α⊗S␈α␈tud␈α␈y␈αthe␈αea␈α␈rly␈αhistory␈αo␈α␈f␈αth␈α␈e␈αclassical␈αalgor␈α␈i␈α↓th␈α␈ms␈αfor␈αarithm␈α␈etic␈αb␈α␈y␈αlo␈α↓ok␈α␈ing
␈β:␈↓ ↓H␈ε#u␈α␈p␈α∂th␈α␈e␈α⊂writing␈α␈s␈α∂of,␈α⊃sa␈α␈y␈α␈,␈↓ ∧;␈ε#S␈α␈un␈α∂Ts␈↓ ¬'␈ε#u␈↓ ¬(␈ε#⊃␈↓ ¬9␈ε#,␈↓ ¬S␈ε#a␈α␈l␈α↓-Kh␈α}w␈↓ ε;␈ε#∂␈↓ ε;␈ε#a␈↓ εL␈ε#rizm␈↓ π	␈ε#∂␈↓ π
␈ε#␈↓ π⊗␈ε#,␈↓ π0␈ε#a␈α␈l␈α↓-Uq␈α␈l␈↓ λβ␈ε#∂␈↓ λπ␈ε#␈↓ λ⊂␈ε#d␈α␈i␈α↓s␈↓ λ5␈ε#∂␈↓ λ9␈ε#␈↓ λB␈ε#,␈↓ λ[␈ε#F␈α↓ib␈α␈ona␈α␈cci,␈α⊃a␈α␈nd␈↓ 
G␈ε#Ro␈α␈ber␈α␈t
␈βb␈↓ ↓H␈ε#Re␈α␈cord␈α␈e,␈α∞a␈α␈nd␈αby␈αtran␈α␈sl␈α↓a␈α␈ting␈αtheir␈α
me␈α␈th␈α↓o␈α␈ds␈α
a␈α␈s␈α
faithfu␈α␈l␈α↓ly␈αas␈α
p␈α␈ossible␈α
in␈α␈to␈αpre␈α␈cise␈α
algo␈α␈-
␈β
␈↓ ↓H␈ε#rith␈α␈mic␈αn␈α↓o␈α␈tation␈α␈.
␈βJ␈↓ ↓g␈ε32.␈↓ α␈ε#[␈ε)15␈↓ α;␈ε#]␈α⊗Ge␈α␈nera␈α␈l␈α↓ize␈αAlgo␈α␈rithm␈αA␈αso␈αtha␈α␈t␈αi␈α↓t␈αd␈α␈oes␈α\co␈α␈lumn␈αadd␈α␈iti␈α↓o␈α␈n,"␈αi.␈α↓e␈α␈.␈α↓,␈αobta␈α␈ins␈αthe
␈βr␈↓ ↓H␈ε#su␈α␈m␈αof␈ε)␈αm␈ε#␈αnon␈α␈ne␈α␈gativ␈α␈e␈ε)␈α
n␈ε#␈α↓-p␈α␈l␈α↓a␈α␈ce␈αin␈α␈teg␈α␈ers.␈α→(A␈α↓s␈α␈sume␈αth␈α␈at␈ε)␈αm␈ε7␈α	∀␈ε)␈α	b␈ε#.␈α↓)
␈β
3␈↓ ↓g␈ε33.␈↓ α␈ε#[␈ε)21␈↓ α;␈ε#]␈α⊗W␈α⎇rite␈α	a␈↓ ∧	␈ε#pro␈α␈gram␈αλfor␈α	the␈α	a␈α␈lgorith␈α␈m␈α	of␈α	ex␈α␈ercise␈α	2,␈α	and␈αλestima␈α␈te␈α	i␈α↓ts␈α	ru␈α␈nn␈α␈ing
␈β
5␈↓ βM␈ε∃MIX
␈β
[␈↓ ↓H␈ε#time␈αa␈α␈s␈αa␈αfun␈α␈ction␈α
of␈ε)␈αm␈ε#␈αan␈α␈d␈ε)␈αn␈ε#.
␈β∞≠␈↓ ↓g␈ε34.␈↓ α␈ε#[␈ε)M2␈α␈1␈↓ α\␈ε#]␈α⊗Giv␈α␈e␈α
a␈αforma␈α␈l␈↓ ∧S␈ε#proof␈α
of␈α
th␈α␈e␈α
v␈α}a␈α␈li␈α↓d␈α␈it␈α␈y␈α
of␈αA␈α↓lg␈α␈orithm␈αA␈↓ λk␈ε#,␈α∞u␈α␈si␈α↓n␈α␈g␈α
th␈α␈e␈α
me␈α␈th␈α↓o␈α␈d␈α
o␈α␈f
␈β∞C␈↓ ↓H␈ε#\␈↓ ↓X␈ε#i␈α↓n␈α␈du␈α␈ctiv␈α␈e␈αa␈α␈ssertion␈α␈s"␈αex␈α␈plain␈α␈ed␈αin␈αS␈α␈ection␈α
1.2.1.
␈β∂∧␈↓ ↓g␈ε35.␈↓ α␈ε#[␈ε)21␈↓ α;␈ε#]␈α⊗Algo␈α␈ri␈α↓t␈α␈hm␈αA␈α
add␈α␈s␈αth␈α␈e␈αt␈α␈w␈α␈o␈αin␈α␈pu␈α␈ts␈αby␈α
go␈α␈i␈α↓n␈α␈g␈αfro␈α␈m␈αrigh␈α}t␈αto␈αle$,␈αb␈α␈ut␈αso␈α␈metime␈α␈s
␈β∂,␈↓ ↓H␈ε#th␈α␈e␈αλda␈α␈ta␈αλi␈α↓s␈αλm␈α↓o␈α␈re␈α	re␈α␈ad␈α␈i␈α↓ly␈αλac␈α␈cessible␈αλfrom␈αλle$␈α	to␈αλrig␈α␈h␈α␈t.␈α∞Design␈αλa␈α␈n␈αλalgor␈α␈i␈α↓th␈α␈m␈αλtha␈α␈t␈α	p␈α␈rod␈α␈uce␈α␈s
␈β∂S␈↓ ↓H␈ε#th␈α␈e␈αsa␈α␈me␈αa␈α␈nsw␈α␈er␈αa␈α␈s␈αAlgorith␈α␈m␈αA␈↓ ¬!␈ε#,␈αbu␈α␈t␈αth␈α␈at␈αge␈α␈nera␈α␈tes␈αth␈α␈e␈αd␈α␈i␈α↓g␈α␈i␈α↓ts␈α
of␈αth␈α␈e␈αan␈α␈sw␈α␈er␈αfrom␈α
l␈α↓e␈α␈$
␈β∂{␈↓ ↓H␈ε#to␈α
ri␈α↓g␈α␈h␈α␈t,␈α∂go␈α␈ing␈α∞b␈α␈ack␈α
to␈α∞ch␈α␈ang␈α␈e␈α∞pre␈α␈viou␈α␈s␈α∂v␈α⎇alue␈α␈s␈α∂if␈α∞a␈α∞ca␈α␈rry␈α∞oc␈α␈curs␈α∞to␈α∞m␈α␈ak␈α␈e␈α
a␈α∞prev␈α␈iou␈α␈s
␈β⊂"␈↓ ↓H␈ε#v␈α⎇alue␈αin␈α␈corre␈α␈ct.␈α→[␈ε0Note:␈ε#␈αEarly␈↓ ∧⎇␈ε#Hin␈α␈du␈α
an␈α␈d␈↓ ε!␈ε#Arab␈α␈ic␈αman␈α}usc␈α␈ri␈α↓p␈α␈ts␈αd␈α␈ealt␈αwith␈αa␈α␈dd␈α␈i␈α↓tion␈α
from
␈β⊂J␈↓ ↓H␈ε#le$␈αto␈α
ri␈α↓g␈α␈h␈α␈t␈αin␈αth␈α␈is␈αwa␈α}y,␈αpro␈α␈ba␈α␈bly␈αb␈α␈ecau␈α␈se␈αit␈αw␈α␈as␈αcu␈α␈stoma␈α␈ry␈αto␈α
wo␈α␈rk␈αfro␈α␈m␈αle$␈αto␈αrigh␈α}t
␈β⊂r␈↓ ↓H␈ε#o␈α␈n␈αan␈αab␈α␈acu␈α␈s;␈αthe␈αri␈α↓g␈α␈h␈α␈t-to␈α␈-␈α↓le$␈αad␈α␈dition␈αalgo␈α␈ri␈α↓th␈α␈m␈αwa␈α␈s␈αa␈αre|␈α␈nem␈α␈en␈α␈t␈αdu␈α␈e␈αto␈↓ 
⊃␈ε#al-Uql␈↓ 
d␈ε#∂␈↓ 
h␈ε#␈↓ 
q␈ε#dis␈↓ ⊗␈ε#∂␈↓ ~␈ε#␈↓ #␈ε#,
␈β⊃→␈↓ ↓H␈ε#p␈α␈erh␈α␈aps␈αb␈α␈eca␈α␈use␈αAra␈α␈bic␈αis␈αwri␈α↓tt␈α␈en␈αfrom␈α
ri␈α↓g␈α␈h␈α␈t␈αto␈αle$.]
␈β∪(

␈β↓U␈↓ ↓H␈ε"266␈↓ 
b␈ε"4.3.1
␈β↓\␈↓ α=␈ε∞ARITH␈α↓MET␈α↓IC
␈βα#␈↓ ↓;␈ε↓x
␈βα%␈↓ ↓c␈ε36.␈↓ α␈ε#[␈ε)22␈↓ α;␈ε#]␈α⊗Desig␈α␈n␈αan␈αa␈α␈l␈α↓g␈α␈orithm␈αth␈α␈at␈αad␈α␈ds␈αfrom␈αle$␈αto␈αrigh␈α}t␈α(as␈αin␈αex␈α␈ercise␈α5),␈αbu␈α␈t␈αy␈α}ou␈α␈r
␈βαM␈↓ ↓H␈ε#a␈α␈l␈α↓g␈α␈orith␈α␈m␈α∂shou␈α␈l␈α↓d␈α∞not␈α∂sto␈α␈re␈α∂a␈α∞d␈α␈i␈α↓g␈α␈i␈α↓t␈α∞of␈α∂th␈α␈e␈α∂a␈α␈nsw␈α␈er␈α∞un␈α}ti␈α↓l␈α∂t␈α␈his␈α∂d␈α␈i␈α↓g␈α␈i␈α↓t␈α∞can␈α␈n␈α↓o␈α␈t␈α∂p␈α␈ossibly␈α∞be
␈βαt␈↓ ↓H␈ε#a␈α␈{ec␈α␈ted␈α
b␈α␈y␈α
fu␈α␈ture␈αcarries;␈α∞th␈α␈ere␈α
is␈α
to␈α
b␈α␈e␈α
no␈α
ch␈α␈an␈α␈ging␈αof␈α
an␈α}y␈α
an␈α␈sw␈α␈er␈α
d␈α␈i␈α↓g␈α␈i␈α↓t␈αonc␈α␈e␈α
it␈α
ha␈α␈s
␈ββ≤␈↓ ↓H␈ε#b␈α␈een␈α	sto␈α␈red.␈α∪[␈ε0Hin␈α␈t:␈ε#␈α
Keep␈α	tra␈α␈ck␈α	of␈α	the␈α	n␈α␈u␈α␈m␈α␈be␈α␈r␈α
o␈α␈f␈α
con␈α␈secu␈α␈tiv␈α␈e␈α	(␈ε)b␈ε7␈α¬␈␈ε#␈α∧1)'s␈α
th␈α␈at␈α	ha␈α␈v␈α}e␈α
not␈α	y␈α␈e␈α␈t
␈ββD␈↓ ↓H␈ε#b␈α␈een␈α
sto␈α␈red␈α
in␈αt␈α␈he␈α
ans␈α␈we␈α␈r.␈α↓]␈α↔This␈α
sort␈α
of␈αa␈α␈l␈α↓g␈α␈orithm␈α
w␈α␈ou␈α␈ld␈αb␈α␈e␈α
app␈α␈rop␈α␈riate,␈αfo␈α␈r␈αex␈α␈amp␈α␈le,
␈ββk␈↓ ↓H␈ε#in␈α
a␈α
situ␈α␈ation␈α
wh␈α␈ere␈α
the␈α
inp␈α␈ut␈α
a␈α␈nd␈α
o␈α␈utp␈α␈ut␈α
n␈α␈u␈α␈m␈α␈be␈α␈rs␈α∞a␈α␈re␈α
to␈α
be␈α
rea␈α␈d␈α
an␈α␈d␈α
written␈α
from
␈β∧∪␈↓ ↓H␈ε#le$␈αto␈αr␈α␈i␈α↓g␈α␈h␈α␈t␈αon␈α
mag␈α␈netic␈αta␈α␈pes,␈αor␈↓ ¬B␈ε#if␈αthe␈α␈y␈αap␈α␈pe␈α␈ar␈αin␈αstraig␈α␈h␈α␈t␈↓ λ;␈ε#li␈α↓n␈α␈ear␈αlists.
␈β∧I␈↓ ↓g␈ε37.␈↓ α␈ε#[␈ε)M2␈α␈6␈↓ α\␈ε#]␈α⊗Determin␈α␈e␈α	th␈α␈e␈α	a␈α}v␈α␈era␈α␈ge␈αλn␈α␈u␈α␈m␈α␈ber␈αλof␈αλti␈α↓m␈α␈es␈α	th␈α␈e␈αλalgorith␈α␈m␈α	o␈α␈f␈α	ex␈α␈ercise␈αλ5␈α	will␈α	|␈α␈nd
␈β∧q␈↓ ↓H␈ε#th␈α␈at␈αa␈↓ α-␈ε#carry␈αma␈α␈k␈α␈es␈αit␈αn␈α␈ecessa␈α␈ry␈αto␈αgo␈αb␈α␈ac␈α␈k␈αan␈α␈d␈αcha␈α␈nge␈↓ πx␈ε)k␈↓ λ↔␈ε#d␈α␈igits␈αof␈αth␈α␈e␈αpa␈α␈rtial␈αan␈α␈sw␈α␈er,
␈β¬→␈↓ ↓H␈ε#fo␈α␈r␈↓ α␈ε)k␈↓ α#␈ε#=␈α⊃1,␈α⊃2␈α␈,␈↓ β*␈ε#.␈αε.␈αε.␈↓ βW␈ε#,␈ε)␈α⊃n␈ε#.␈α"(Assum␈α␈e␈α⊂th␈α␈at␈α∂bo␈α␈th␈α∂i␈α↓n␈α␈pu␈α␈ts␈α⊂a␈α␈re␈α⊂in␈α␈dep␈α␈en␈α␈den␈α}tl␈α↓y␈α∂a␈α␈nd␈α∂u␈α␈niformly
␈β¬:␈↓ ∧\␈ε,n
␈β¬@␈↓ ↓H␈ε#d␈α␈istribu␈α␈ted␈αb␈α␈et␈α␈w␈α␈een␈α0␈α
an␈α␈d␈↓ ∧N␈ε)b␈↓ ∧v␈ε7␈␈ε#␈αλ1␈α␈.␈α↓)
␈β¬w␈↓ ↓g␈ε38.␈↓ α␈ε#[␈ε)M2␈α␈6␈↓ α\␈ε#]␈α⊗W␈α}rite␈α∞a␈↓ ∧;␈ε#pro␈α␈gra␈α␈m␈α∂for␈α∞the␈α∞alg␈α␈orithm␈α∞of␈α∞exer␈α␈ci␈α↓s␈α␈e␈α∂5␈α␈,␈α⊂an␈α␈d␈α∞dete␈α␈rmine␈α∞i␈α↓t␈α␈s
␈β¬y␈↓ βz␈ε∃MIX
␈βε≡␈↓ ↓H␈ε#a␈α}v␈α␈era␈α␈ge␈α	run␈α␈nin␈α␈g␈α	ti␈α↓m␈α␈e␈α	base␈α␈d␈α	on␈α	th␈α␈e␈α	exp␈α␈ecte␈α␈d␈α	n␈α␈u␈α␈m␈α␈ber␈α	o␈α␈f␈α
ca␈α␈rries␈α
a␈α␈s␈α
c␈α␈omp␈α␈ute␈α␈d␈α	i␈α↓n␈αλthe␈α	tex␈α␈t.
␈βεS␈↓ ↓;␈ε↓x
␈βεU␈↓ ↓c␈ε39.␈↓ α␈ε#[␈ε)21␈↓ α;␈ε#]␈α⊗Ge␈α␈nera␈α␈l␈α↓ize␈αAlgo␈α␈ri␈α↓th␈α␈m␈αA␈αto␈αo␈α␈bta␈α␈i␈α↓n␈αa␈α␈n␈αalgo␈α␈rithm␈αtha␈α␈t␈αadd␈α␈s␈αtw␈α␈o␈ε)␈αn␈ε#-plac␈α␈e␈αn␈α}um␈α␈-
␈βε⎇␈↓ ↓H␈ε#b␈α␈ers␈αi␈α↓n␈αa␈↓ αR␈ε0mixe␈α␈d-rad␈α␈ix␈ε#␈αn␈α␈u␈α␈m␈α␈ber␈↓ ¬ε␈ε#syste␈α␈m,␈αwith␈αbase␈α␈s␈↓ π"␈ε)b␈↓ π?␈ε#,␈↓ πT␈ε)b␈↓ πr␈ε#,␈↓ λπ␈ε#.␈αε.␈α¬.␈↓ λ9␈ε#(f␈α↓r␈α␈om␈αri␈α↓g␈α␈h␈α␈t␈αto␈αle$).␈α⊂Th␈α␈u␈α␈s
␈βπλ␈↓ π0␈ε&0␈↓ πc␈ε&1
␈βπ$␈↓ ↓H␈ε#th␈α␈e␈αlea␈α␈st␈αsigni|␈α␈can␈α}t␈αdigits␈αlie␈αb␈α␈et␈α␈w␈α␈een␈α0␈αa␈α␈nd␈↓ εV␈ε)b␈↓ ε|␈ε7␈␈ε#␈αλ1␈α␈,␈α
th␈α␈e␈αn␈α␈ext␈αdigits␈αlie␈αb␈α␈et␈α␈w␈α␈een␈α0␈αa␈α␈nd
␈βπ0␈↓ εd␈ε&0
␈βπL␈↓ ↓H␈ε)b␈↓ ↓m␈ε7␈␈ε#␈απ1,␈αetc.;␈αcf.␈αEq.␈α4.1↑␈α␈9.
␈βπW␈↓ ↓V␈ε&1
␈βλβ␈↓ ↓V␈ε310.␈↓ α␈ε#[␈ε)18␈↓ α;␈ε#]␈α⊗W␈α⎇ou␈α␈l␈α↓d␈αProg␈α␈ram␈αS␈αw␈α␈ork␈αpro␈α␈pe␈α␈rl␈α↓y␈αif␈αthe␈αi␈α↓n␈α␈stru␈α␈ctions␈αon␈αl␈α↓in␈α␈es␈α06␈αan␈α␈d␈α0␈α␈7␈αw␈α␈ere
␈βλ*␈↓ ↓H␈ε#in␈α}terch␈α␈ang␈α␈ed?␈α∞If␈αth␈α␈e␈αinstru␈α␈ction␈α␈s␈αon␈αline␈α␈s␈α05␈αa␈α␈nd␈α0␈α␈6␈αw␈α␈ere␈αin␈α␈te␈α␈rcha␈α␈ng␈α␈ed?
␈βλa␈↓ ↓V␈ε311.␈↓ α␈ε#[␈ε)10␈↓ α;␈ε#]␈α⊗Desig␈α␈n␈α∞an␈α
algorith␈α␈m␈α∞tha␈α␈t␈α∞comp␈α␈ares␈α∞t␈α␈w␈α␈o␈α∞non␈α␈neg␈α␈ativ␈α␈e␈ε)␈α∞n␈ε#-pla␈α␈ce␈α∞in␈α␈teg␈α␈ers␈ε)␈α∞u␈ε#␈α∂=
␈β	λ␈↓ ↓H␈ε#(␈↓ ↓S␈ε)u␈↓ ↓u␈ε)u␈↓ α≡␈ε#.␈α¬.␈αε.␈↓ αJ␈ε)u␈↓ αp␈ε#)␈↓ β∪␈ε#an␈α␈d␈↓ βT␈ε)v␈↓ βo␈ε#=␈α	(␈↓ ∧$␈ε)v␈↓ ∧D␈ε)v␈↓ ∧i␈ε#.␈αε.␈αε.␈↓ ¬⊗␈ε)v␈↓ ¬8␈ε#)␈↓ ¬Q␈ε#,␈αto␈αd␈α␈eterm␈α␈i␈α↓n␈α␈e␈αwhe␈α␈ther␈ε)␈αu␈ε#␈α	<␈↓ λp␈ε)v␈↓ 	α␈ε#,␈ε)␈αu␈ε#␈α
=␈↓ 	]␈ε)v␈↓ 	o␈ε#,␈αor␈ε)␈αu␈ε#␈α
>␈↓ 
s␈ε)v␈↓ ¬␈ε#.
␈β	∀␈↓ ↓f␈ε&1␈↓ α	␈ε&2␈↓ α]␈ε,n␈↓ α{␈ε,b␈↓ ∧5␈ε&1␈↓ ∧T␈ε&2␈↓ ¬&␈ε,n␈↓ ¬C␈ε,b
␈β	?␈↓ ↓V␈ε312.␈↓ α␈ε#[␈ε)16␈↓ α;␈ε#]␈α⊗Algo␈α␈ri␈α↓t␈α␈hm␈αS␈αass␈α␈umes␈αth␈α␈at␈αw␈α␈e␈αkno␈α␈w␈α
wh␈α␈ich␈αof␈αth␈α␈e␈α
t␈α␈w␈α␈o␈αinp␈α␈ut␈αo␈α␈pera␈α␈nd␈α␈s␈α
is␈αthe
␈β	g␈↓ ↓H␈ε#lar␈α␈ger;␈α
if␈α	this␈α	in␈α␈forma␈α␈ti␈α↓o␈α␈n␈α	is␈α	not␈α	k␈α␈n␈α↓o␈α␈wn␈α␈,␈α
w␈α␈e␈α	c␈α␈ou␈α␈l␈α↓d␈αλgo␈αλahe␈α␈ad␈αλand␈αλp␈α␈erform␈α	th␈α␈e␈α	su␈α␈btra␈α␈ction
␈β
∞␈↓ ↓H␈ε#a␈α␈n␈α␈y␈α␈wa␈α}y,␈α∞an␈α␈d␈α
w␈α␈e␈α
w␈α␈ould␈α
|␈α␈nd␈αthat␈α
an␈αextra␈α
\␈↓ εN␈ε#bo␈α␈rro␈α␈w"␈α
is␈α∞st␈α␈i␈α↓ll␈α∞p␈α␈resen␈α}t␈↓ 	-␈ε#at␈α
the␈α
en␈α␈d␈α
of␈α
the
␈β
6␈↓ ↓H␈ε#a␈α␈l␈α↓g␈α␈orith␈α␈m.␈α∂Design␈α	anoth␈α␈er␈α
algo␈α␈rithm␈α
th␈α␈at␈α
co␈α␈uld␈α	be␈α
u␈α␈sed␈α	(␈α↓if␈α
th␈α␈ere␈α
is␈α
a␈α
\␈α␈borr␈α␈o␈α␈w"␈α
p␈α␈resen␈α}t
␈β
]␈↓ ↓H␈ε#a␈α␈t␈αthe␈αen␈α␈d␈αo␈α␈f␈α
Algo␈α␈ri␈α↓th␈α␈m␈αS␈α␈)␈α
to␈αc␈α␈omp␈α␈lemen␈α}t␈α
(␈↓ εN␈ε)w␈↓ εu␈ε)w␈↓ π!␈ε#.␈αε.␈αε.␈↓ πN␈ε)w␈↓ πx␈ε#)␈↓ λ≤␈ε#an␈α␈d␈αth␈α␈erefore␈αto␈αo␈α␈bta␈α␈i␈α↓n␈αthe
␈β
i␈↓ εe␈ε&1␈↓ π␈ε&2␈↓ πe␈ε,n␈↓ λβ␈ε,b
␈β¬␈↓ ↓H␈ε#a␈α␈bso␈α␈l␈α↓u␈α␈te␈αv␈α}a␈α␈l␈α↓u␈α␈e␈αof␈αth␈α␈e␈αdi{e␈α␈renc␈α␈e␈αof␈ε)␈αu␈ε#␈αa␈α␈nd␈↓ ε≠␈ε)v␈↓ ε-␈ε#.
␈β<␈↓ ↓V␈ε313.␈↓ α␈ε#[␈ε)21␈↓ α;␈ε#]␈α⊗W␈α⎇rite␈αa␈↓ ∧∂␈ε#pro␈α␈gram␈α
that␈αm␈α}ultiplies␈α(␈↓ π␈ε)u␈↓ π#␈ε)u␈↓ πK␈ε#.␈αε.␈αε.␈↓ πx␈ε)u␈↓ λ≥␈ε#)␈↓ λA␈ε#b␈α␈y␈↓ λp␈ε)v␈↓ 	α␈ε#,␈αwh␈α␈ere␈↓ 	v␈ε)v␈↓ 
∪␈ε#is␈αa␈αsing␈α␈l␈α↓e␈α␈-
␈β>␈↓ βQ␈ε∃MIX
␈βG␈↓ π∀␈ε&1␈↓ π6␈ε&2␈↓ λ␈ε,n␈↓ λ(␈ε,b
␈βc␈↓ ↓H␈ε#p␈α␈recision␈αn␈α␈u␈α␈m␈α␈b␈α␈er␈α
(i.␈α↓e␈α␈.␈α↓,␈α
0␈ε7␈α∀␈↓ ∧d␈ε)v␈↓ ¬α␈ε#<␈ε)␈αb␈ε#),␈α∞p␈α␈rod␈α␈ucing␈αth␈α␈e␈α
an␈α␈sw␈α␈er␈α
(␈↓ λ2␈ε)w␈↓ λY␈ε)w␈↓ 	¬␈ε#.␈αε.␈αε.␈↓ 	2␈ε)w␈↓ 	\␈ε#)␈↓ 	t␈ε#.␈α∀Ho␈α␈w␈α
m␈α␈u␈α␈ch
␈βo␈↓ λJ␈ε&0␈↓ λq␈ε&1␈↓ 	J␈ε,n␈↓ 	g␈ε,b
␈β␈↓ ↓H␈ε#ru␈α␈nn␈α␈ing␈αtime␈α
i␈α↓s␈αreq␈α␈uired␈α␈?
␈β?␈↓ ↓;␈ε↓x
␈βA␈↓ ↓S␈ε31␈α␈4.␈↓ α␈ε#[␈ε)M2␈α␈4␈↓ α\␈ε#]␈α⊗Giv␈α␈e␈αa␈αforma␈α␈l␈α
proof␈αof␈α
th␈α␈e␈αv␈α}alidit␈α␈y␈αof␈αAlgorith␈α␈m␈α
M␈↓ λm␈ε#,␈α
usin␈α␈g␈αthe␈αmethod␈αo␈α␈f
␈βi␈↓ ↓H␈ε#\␈α␈i␈α↓n␈α␈du␈α␈ctiv␈α␈e␈αa␈α␈ssertion␈α␈s"␈αex␈α␈plain␈α␈ed␈αin␈αS␈α␈ection␈α
1.2.1.
␈β
 ␈↓ ↓V␈ε315.␈↓ α␈ε#[␈ε)M2␈α␈0␈↓ α\␈ε#]␈α⊗If␈αw␈α␈e␈αwish␈αto␈αform␈αt␈α␈he␈αprod␈α␈uc␈α␈t␈αof␈αt␈α␈wo␈ε)␈αn␈ε#-plac␈α␈e␈αfrac␈α␈ti␈α↓o␈α␈ns,␈α(.␈↓ 	N␈ε)u␈↓ 	q␈ε)u␈↓ 
→␈ε#.␈αε.␈αε.␈↓ 
E␈ε)u␈↓ 
k␈ε#)␈↓ ␈ε7α
␈β
+␈↓ 	b␈ε&1␈↓ 
∧␈ε&2␈↓ 
Y␈ε,n␈↓ 
v␈ε,b
␈β
G␈↓ ↓H␈ε#(.␈↓ ↓\␈ε)v␈↓ ↓|␈ε)v␈↓ α!␈ε#.␈αε.␈α¬.␈↓ αM␈ε)v␈↓ αp␈ε#)␈↓ βλ␈ε#,␈α∪a␈α␈nd␈α⊂to␈α⊃o␈α␈btain␈α⊂on␈α␈l␈α↓y␈α⊂an␈ε)␈α⊂n␈ε#-place␈α⊂app␈α␈ro␈α␈x␈α␈imation␈α⊂(.␈↓ λ|␈ε)w␈↓ 	#␈ε)w␈↓ 	P␈ε#.␈αε.␈αε.␈↓ 	|␈ε)w␈↓ 
&␈ε#)␈↓ 
P␈ε#to␈α⊂the
␈β
S␈↓ ↓l␈ε&1␈↓ α␈ε&2␈↓ α↑␈ε,n␈↓ α{␈ε,b␈↓ 	∀␈ε&1␈↓ 	;␈ε&2␈↓ 
∀␈ε,n␈↓ 
2␈ε,b
␈β
o␈↓ ↓H␈ε#re␈α␈sult,␈α∂Algo␈α␈ri␈α↓th␈α␈m␈α∞M␈α
cou␈α␈ld␈α∞b␈α␈e␈α∞u␈α␈sed␈α
to␈α∞ob␈α␈tain␈α
a␈↓ π␈ε#2␈ε)␈α␈n␈ε#␈α↓-p␈α␈l␈α↓a␈α␈ce␈α∞a␈α␈nsw␈α␈er␈α
that␈α
i␈α↓s␈α
sub␈α␈sequ␈α␈en␈α␈tly
␈β∞↔␈↓ ↓H␈ε#ro␈α␈un␈α␈ded␈α
to␈α∞th␈α␈e␈α∞d␈α␈esired␈α∞a␈α␈pp␈α␈ro␈α␈x␈α␈i␈α↓m␈α␈ation␈α␈.␈α_But␈α∞th␈α␈is␈α∞in␈α␈v␈α␈o␈α␈l␈α↓v␈α}es␈α∞ab␈α␈ou␈α␈t␈α∞t␈α␈wice␈α∞as␈α∞m␈α}uch␈α
w␈α␈ork
␈β∞>␈↓ ↓H␈ε#a␈α␈s␈α∂is␈α∞nec␈α␈essary␈α∞for␈α∞rea␈α␈sona␈α␈ble␈α∞acc␈α␈urac␈α␈y,␈α⊂s␈α␈i␈α↓n␈α␈ce␈α∞the␈α∞pr␈α␈odu␈α␈cts␈↓ λA␈ε)u␈↓ λ`␈ε)v␈↓ 	
␈ε#fo␈α␈r␈ε)␈α∂i␈ε#␈α	+␈↓ 
∧␈ε)j␈↓ 
#␈ε#>␈ε)␈α∂n␈ε#␈α
+␈α
2
␈β∞J␈↓ λU␈ε,i␈↓ λp␈ε,j
␈β∞f␈↓ ↓H␈ε#c␈α␈on␈α␈trib␈α␈ute␈αv␈α}ery␈αlittle␈αto␈αth␈α␈e␈αans␈α␈we␈α␈r.
␈β∂∞␈↓ α␈ε#Giv␈α␈e␈α
an␈α
estimate␈α
of␈αth␈α␈e␈αma␈α␈xim␈α␈u␈α␈m␈αerro␈α␈r␈αtha␈α␈t␈αca␈α␈n␈αo␈α␈ccu␈α␈r,␈αif␈αth␈α␈ese␈αp␈α␈rod␈α␈uc␈α␈ts␈↓ 
<␈ε)u␈↓ 
[␈ε)v␈↓ ∧␈ε#fo␈α␈r
␈β∂~␈↓ 
P␈ε,i␈↓ 
k␈ε,j
␈β∂6␈↓ ↓H␈ε)i␈ε#␈α∧+␈↓ ↓}␈ε)j␈↓ α↔␈ε#>␈ε)␈α	n␈ε#␈α¬+␈α¬2␈α	are␈α	not␈α
co␈α␈mp␈α␈uted␈α	d␈α␈uring␈α	th␈α␈e␈α
m␈α␈u␈α␈ltiplication␈α␈,␈α
bu␈α␈t␈α
are␈α	assu␈α␈med␈α	to␈α	be␈α	zero␈α␈.
␈β∂k␈↓ ↓;␈ε↓x
␈β∂m␈↓ ↓S␈ε31␈α␈6.␈↓ α␈ε#[␈ε)20␈↓ α;␈ε#]␈α⊗Desig␈α␈n␈α	an␈α	alg␈α␈orithm␈↓ ¬ε␈ε#th␈α␈at␈α	divid␈α␈es␈α
a␈α	non␈α␈neg␈α␈ativ␈α␈e␈ε)␈α	n␈ε#-place␈α	in␈α␈te␈α␈ger␈α	(␈↓ 	w␈ε)u␈↓ 
~␈ε)u␈↓ 
B␈ε#.␈αε.␈αε.␈↓ 
n␈ε)u␈↓ ∀␈ε#)
␈β∂x␈↓ 
␈ε&1␈↓ 
-␈ε&2␈↓ α␈ε,n␈↓ ∨␈ε,b
␈β⊂∀␈↓ ↓H␈ε#b␈α␈y␈↓ ↓y␈ε)v␈↓ α␈ε#,␈α
w␈α↓h␈α␈ere␈↓ β∧␈ε)v␈↓ β#␈ε#is␈α
a␈α
sing␈α␈le-prec␈α␈i␈α↓sio␈α␈n␈α
n␈α␈u␈α␈m␈α␈be␈α␈r␈α
(␈α↓i.e.,␈α∞0␈α<␈↓ π←␈ε)v␈↓ π}␈ε#<␈ε)␈α
b␈ε#),␈α∞pro␈α␈du␈α␈cing␈α
th␈α␈e␈α
qu␈α␈otien␈α}t
␈β⊂<␈↓ ↓H␈ε#(␈↓ ↓S␈ε)w␈↓ ↓z␈ε)w␈↓ α&␈ε#.␈αε.␈αε.␈↓ αS␈ε)w␈↓ α⎇␈ε#)␈↓ β ␈ε#an␈α␈d␈αrema␈α␈ind␈α␈er␈↓ ∧}␈ε)r␈↓ ¬∞␈ε#.
␈β⊂G␈↓ ↓k␈ε&1␈↓ α∩␈ε&2␈↓ αk␈ε,n␈↓ βλ␈ε,b
␈β⊂r␈↓ ↓V␈ε317.␈↓ α␈ε#[␈ε)M2␈α␈0␈↓ α\␈ε#]␈α⊗In␈αth␈α␈e␈αn␈α↓o␈α␈tation␈αof␈αFi␈α↓g␈α␈.␈α6,␈α
a␈α␈ssum␈α␈e␈αtha␈α␈t␈↓ π6␈ε)v␈↓ πa␈ε7∃␈αb␈ε)b␈ε#/2␈ε7c␈ε#;␈αsh␈α↓o␈α}w␈αthat␈αif␈↓ 
*␈ε)u␈↓ 
W␈ε#=␈↓ ∧␈ε)v␈↓ #␈ε#,
␈β⊂}␈↓ πG␈ε&1␈↓ 
=␈ε&0␈↓ ∀␈ε&1
␈β⊃~␈↓ ↓H␈ε#w␈α␈e␈αm␈α␈u␈α␈st␈αha␈α}v␈α␈e␈↓ β_␈ε)q␈↓ β3␈ε#=␈ε)␈α
b␈ε7␈απ␈␈ε#␈αλ1␈αo␈α␈r␈ε)␈αb␈ε7␈αλ␈␈ε#␈αλ2.
␈β∪(

␈β↓U␈↓ ↓H␈ε"4.3.1␈↓ 
v␈ε"267
␈β↓\␈↓ ε[␈ε∞T␈α↓HE␈α
CL␈α↓AS␈α␈SICA␈α↓L␈α
AL␈α␈G␈α↓ORITH␈α↓MS
␈βα∨␈↓ πR␈ε:0
␈βα%␈↓ ↓V␈ε318.␈↓ α␈ε#[␈ε)M2␈α␈0␈↓ α\␈ε#]␈α⊗In␈α
th␈α␈e␈α
n␈α↓o␈α␈tation␈αof␈α
Fig.␈α
6,␈α∞s␈α␈h␈α↓o␈α␈w␈α
th␈α␈at␈α
if␈↓ π@␈ε)q␈↓ πg␈ε#=␈ε7␈α
b␈ε#(␈↓ λ-␈ε)u␈↓ λP␈ε)b␈ε#␈α	+␈↓ 	⊃␈ε)u␈↓ 	3␈ε#)/(␈↓ 	Z␈ε)v␈↓ 
α␈ε#+␈α	1)␈ε7c␈ε#,␈α∞th␈α␈en
␈βα1␈↓ λ@␈ε&0␈↓ 	$␈ε&1␈↓ 	j␈ε&1
␈βαG␈↓ ↓Z␈ε:0
␈βαM␈↓ ↓H␈ε)q␈↓ ↓l␈ε7∀␈↓ α⊗␈ε)q␈↓ α(␈ε#.
␈ββ␈↓ ↓;␈ε↓x
␈ββα␈↓ ↓S␈ε31␈α␈9.␈↓ α␈ε#[␈ε)M2␈α␈1␈↓ α\␈ε#]␈α⊗In␈α∞the␈α∞notatio␈α␈n␈α∞of␈α∞F␈α↓ig.␈α∞6,␈α∂l␈α↓e␈α␈t␈↓ ε<␈ε#∂␈↓ ε<␈ε)q␈↓ ε\␈ε#b␈α␈e␈α∂a␈α␈n␈α∞ap␈α␈pro␈α␈x␈α␈imation␈α
to␈↓ 	K␈ε)q␈↓ 	]␈ε#,␈α⊂a␈α␈nd␈α∞let␈↓ 
l␈ε#∂␈↓ 
m␈ε)r␈↓ ␈ε#=
␈ββ*␈↓ ↓H␈ε)u␈↓ ↓j␈ε)b␈ε#␈αε+␈↓ α$␈ε)u␈↓ αL␈ε7␈␈↓ αs␈ε#∂␈↓ αs␈ε)q␈↓ β¬␈ε)v␈↓ β$␈ε#.␈α∂Assu␈α␈me␈α
th␈α␈at␈↓ ∧|␈ε)v␈↓ ¬%␈ε#>␈α	0.␈α∂S␈α␈h␈α↓o␈α}w␈α
that␈α	i␈α↓f␈↓ π5␈ε)v␈↓ πT␈ε)q␈↓ πU␈ε#∂␈↓ πp␈ε#>␈ε)␈α	b␈↓ λ(␈ε#∂␈↓ λ(␈ε)r␈↓ λ=␈ε#+␈↓ λc␈ε)u␈↓ 	ε␈ε#,␈αth␈α␈en␈↓ 	d␈ε)q␈↓ 	␈␈ε#<␈↓ 
*␈ε)q␈↓ 
+␈ε#∂␈↓ 
<␈ε#.␈α∃[␈ε0Hi␈α↓n␈α}t:
␈ββ5␈↓ ↓[␈ε&0␈↓ α8␈ε&1␈↓ β∃␈ε&1␈↓ ¬␈ε&1␈↓ πE␈ε&2␈↓ λw␈ε&2
␈ββQ␈↓ ↓H␈ε#S␈α␈tren␈α␈gth␈α␈en␈αth␈α␈e␈αproof␈αof␈αTh␈α␈eorem␈αA␈αb␈α␈y␈αex␈α␈amin␈α␈i␈α↓n␈α␈g␈αth␈α␈e␈αin⎇␈α␈uen␈α␈ce␈αof␈↓ 	∃␈ε)v␈↓ 	4␈ε#.␈α↓]
␈ββ]␈↓ 	%␈ε&2
␈β∧π␈↓ ↓V␈ε320.␈↓ α␈ε#[␈ε)M2␈α␈2␈↓ α\␈ε#]␈α⊗Usi␈α↓n␈α␈g␈α∞th␈α␈e␈α∞n␈α↓o␈α␈tation␈α∞a␈α␈nd␈α∞a␈α␈ssum␈α␈ption␈α␈s␈α∞of␈α∞exe␈α␈rcise␈α∞19,␈α∂sho␈α␈w␈α∞tha␈α␈t␈α∂if␈↓ 
K␈ε)v␈↓ 
k␈ε#∂␈↓ 
k␈ε)q␈↓ ␈ε7∀
␈β∧∩␈↓ 
\␈ε&2
␈β∧.␈↓ ↓H␈ε)b␈↓ ↓U␈ε#∂␈↓ ↓V␈ε)r␈↓ ↓m␈ε#+␈↓ α∃␈ε)u␈↓ α8␈ε#,␈αthen␈↓ β_␈ε)q␈↓ β→␈ε#∂␈↓ β3␈ε#=␈↓ β↑␈ε)q␈↓ β{␈ε#or␈↓ ∧$␈ε)q␈↓ ∧?␈ε#=␈↓ ∧i␈ε)q␈↓ ∧j␈ε#∂␈↓ ¬β␈ε7␈␈ε#␈απ1.
␈β∧:␈↓ α)␈ε&2
␈β∧a␈↓ ↓;␈ε↓x
␈β∧c␈↓ ↓S␈ε32␈α␈1.␈↓ α␈ε#[␈ε)M2␈α␈3␈↓ α\␈ε#]␈α⊗Sho␈α␈w␈αtha␈α␈t␈αif␈↓ ∧<␈ε)v␈↓ ∧e␈ε7∃␈α
b␈ε)b␈ε#/2␈ε7c␈ε#,␈αan␈α␈d␈αif␈↓ εO␈ε)v␈↓ εn␈ε)q␈↓ εo␈ε#∂␈↓ π
␈ε7∀␈ε)␈α
b␈↓ πB␈ε#∂␈↓ πC␈ε)r␈↓ πZ␈ε#+␈↓ λα␈ε)u␈↓ λ0␈ε#bu␈α␈t␈↓ λn␈ε#∂␈↓ λn␈ε)q␈↓ 		␈ε7≤␈↓ 	4␈ε)q␈↓ 	Q␈ε#in␈αth␈α␈e␈αn␈α↓o␈α␈tation
␈β∧o␈↓ ∧M␈ε&1␈↓ ε←␈ε&2␈↓ λ⊗␈ε&2
␈β¬␈↓ ↓H␈ε#o␈α␈f␈α∂exe␈α␈rcises␈α∂19␈α∞an␈α␈d␈α∂2␈α␈0,␈α⊂the␈α␈n␈ε)␈α∂u␈↓ ¬↔␈ε#mo␈α␈d␈↓ ¬[␈ε)v␈↓ ¬⎇␈ε7∃␈ε#␈α∂(␈α↓1␈ε7␈α	␈␈ε#␈α
2/␈ε)b␈ε#)␈↓ π9␈ε)v␈↓ πK␈ε#.␈α!(Th␈α␈e␈α∂latter␈α∞ev␈α␈en␈α}t␈α∂occ␈α␈urs␈α∂with
␈β¬3␈↓ ↓H␈ε#a␈α␈pp␈α␈ro␈α␈x␈α␈i␈α↓m␈α␈ate␈α
p␈α␈rob␈α␈ab␈α␈i␈α↓lit␈α␈y␈α2/␈ε)b␈ε#,␈α∞so␈αth␈α␈at␈α
wh␈α␈en␈ε)␈αb␈ε#␈α
i␈α↓s␈αthe␈αwo␈α␈rd␈αsi␈α↓z␈α␈e␈α
of␈αa␈α
co␈α␈mpu␈α␈ter␈α
w␈α␈e␈αm␈α␈us␈α␈t
␈β¬Z␈↓ ↓H␈ε#h␈α␈a␈α␈v␈α␈e␈↓ α∀␈ε)q␈↓ α<␈ε#=␈↓ αg␈ε#∂␈↓ αg␈ε)q␈↓ β∧␈ε#in␈αAlg␈α␈orithm␈αD␈αex␈α␈cep␈α␈t␈αin␈αv␈α␈er␈α␈y␈αrare␈αc␈α␈i␈α↓rc␈α␈umsta␈α␈nce␈α␈s.␈α↓)
␈β¬f␈↓ α%␈ε,j
␈βε∞␈↓ ↓;␈ε↓x
␈βε⊂␈↓ ↓S␈ε32␈α␈2.␈↓ α␈ε#[␈ε)24␈↓ α;␈ε#]␈α⊗Find␈α
an␈α
exa␈α␈mp␈α␈l␈α↓e␈αo␈α␈f␈αa␈αfou␈α␈r-digit␈αn␈α}um␈α␈b␈α␈er␈αd␈α␈i␈α↓v␈α␈ided␈α
by␈α
a␈αth␈α␈ree-dig␈α␈i␈α↓t␈αn␈α}um␈α␈b␈α␈er␈αfo␈α␈r
␈βε7␈↓ ↓H␈ε#wh␈α␈ich␈αstep␈α
D6␈αis␈αnec␈α␈essary␈α
i␈α↓n␈α
Algorith␈α␈m␈αD␈↓ ε4␈ε#,␈αwh␈α␈en␈αth␈α␈e␈αrad␈α␈ix␈ε)␈αb␈ε#␈αi␈α↓s␈α1␈α␈0.
␈βεl␈↓ ↓V␈ε323.␈↓ α␈ε#[␈ε)M2␈α␈3␈↓ α\␈ε#]␈α⊗Giv␈α␈en␈α	tha␈α␈t␈↓ ∧!␈ε)v␈↓ ∧<␈ε#an␈α␈d␈ε)␈α
b␈ε#␈α
a␈α␈re␈α
in␈α␈t␈α␈egers,␈α
an␈α␈d␈α	tha␈α␈t␈α
1␈ε7␈α	∀␈↓ λ↔␈ε)v␈↓ λ2␈ε#<␈ε)␈α
b␈ε#,␈α
pro␈α␈v␈α}e␈α
th␈α␈at␈α
w␈α␈e␈α	alw␈α␈a␈α␈y␈α␈s
␈βπ∀␈↓ ↓H␈ε#h␈α␈a␈α␈v␈α␈e␈ε7␈α
b␈ε)b␈ε#␈α↓/␈α␈2␈ε7c␈α	∀␈↓ β∩␈ε)v␈↓ β#␈ε7b␈ε)b␈ε#␈α↓/␈α␈(␈↓ βZ␈ε)v␈↓ βt␈ε#+␈απ1)␈ε7c␈ε#␈α	<␈α
(␈↓ ¬∧␈ε)v␈↓ ¬≥␈ε#+␈αλ1␈α␈)␈ε7b␈ε)b␈ε#␈α↓/␈α␈(␈↓ ε_␈ε)v␈↓ ε1␈ε#+␈αλ1)␈ε7c␈α	∀␈ε)␈α
b␈ε#.
␈βπI␈↓ ↓V␈ε324.␈↓ α␈ε#[␈ε)M2␈α␈0␈↓ α\␈ε#]␈α⊗Usi␈α↓n␈α␈g␈α∂the␈α∂la␈α␈w␈α∂of␈α∂the␈α∂d␈α␈i␈α↓strib␈α␈ution␈α∂o␈α␈f␈α⊂lea␈α␈ding␈α∂d␈α␈igits␈α⊂e␈α␈xp␈α␈l␈α↓a␈α␈i␈α↓n␈α␈ed␈α∂in␈α∂S␈α␈ection
␈βπq␈↓ ↓H␈ε#4␈α␈.␈α↓2␈α␈.4,␈α⊂g␈α␈i␈α↓v␈α}e␈α∂a␈α␈n␈α∞ap␈α␈pro␈α␈x␈α␈imate␈α∞form␈α␈u␈α␈la␈α∂fo␈α␈r␈α∂th␈α␈e␈α∂p␈α␈rob␈α␈ab␈α␈i␈α↓lit␈α␈y␈α∞tha␈α␈t␈ε)␈α∂d␈ε#␈α∂=␈α∂1␈α∞i␈α↓n␈α∞Algo␈α␈rithm␈α∞D.
␈βλ_␈↓ ↓H␈ε#(Whe␈α␈n␈ε)␈αd␈ε#␈α	=␈α
1␈α␈,␈αit␈αis,␈αof␈αc␈α␈ourse␈α␈,␈αp␈α␈ossib␈α␈l␈α↓e␈α
to␈αo␈α␈mit␈αm␈α↓ost␈α
of␈αthe␈α
calcu␈α␈l␈α↓a␈α␈tion␈α
i␈α↓n␈α
step␈α␈s␈αD1␈αa␈α␈nd
␈βλ@␈↓ ↓H␈ε#D8␈α␈.␈α↓)
␈βλu␈↓ ↓V␈ε325.␈↓ α␈ε#[␈ε)26␈↓ α;␈ε#]␈α⊗W␈α⎇rite␈αa␈↓ ∧∂␈ε#rou␈α␈tine␈αfor␈αste␈α␈p␈αD1,␈αwhich␈α
is␈αn␈α␈eed␈α␈ed␈αt␈α␈o␈αcom␈α␈plete␈αProg␈α␈ram␈αD.
␈βλw␈↓ βQ␈ε∃MIX
␈β	+␈↓ ↓V␈ε326.␈↓ α␈ε#[␈ε)21␈↓ α;␈ε#]␈α⊗W␈α⎇rite␈αa␈↓ ∧∂␈ε#rou␈α␈tine␈αfor␈αste␈α␈p␈αD8,␈αwhich␈α
is␈αn␈α␈eed␈α␈ed␈αt␈α␈o␈αcom␈α␈plete␈αProg␈α␈ram␈αD.
␈β	-␈↓ βQ␈ε∃MIX
␈β	`␈↓ ↓V␈ε327.␈↓ α␈ε#[␈ε)M2␈α␈0␈↓ α\␈ε#]␈α⊗Pro␈α␈v␈α␈e␈αth␈α␈at␈αat␈αth␈α␈e␈αb␈α␈eginn␈α␈ing␈αo␈α␈f␈αs␈α␈tep␈αD8␈αin␈αAlg␈α␈orithm␈αD␈↓ 	~␈ε#,␈αthe␈α
un␈α␈n␈α↓o␈α␈rmalized
␈β
λ␈↓ ↓H␈ε#re␈α␈maind␈α␈er␈α(␈↓ αp␈ε)u␈↓ βE␈ε)u␈↓ ∧∨␈ε#.␈αε.␈αε.␈↓ ∧L␈ε)u␈↓ ¬#␈ε#)␈↓ ¬G␈ε#is␈αalw␈α␈a␈α␈ys␈αa␈α␈n␈αex␈α␈act␈αm␈α}ultiple␈αof␈ε)␈αd␈ε#.
␈β
∪␈↓ ββ␈ε,m␈ε&+␈α↓1␈↓ βX␈ε,m␈ε&+2␈↓ ∧←␈ε,m␈ε&+␈ε,n␈↓ ¬/␈ε,b
␈β
=␈↓ ↓V␈ε328.␈↓ α␈ε#[␈ε)M3␈α␈0␈↓ α\␈ε#]␈α⊗(A.␈↓ β4␈ε#Sv␈α␈o␈α␈bo␈α␈da,␈ε0␈α
St␈α␈roje␈α
n␈α␈a␈α
Zpr␈α␈aco␈α␈v␈↓ εM␈ε0∞␈↓ εM␈ε0a␈↓ ε↑␈ε0n␈↓ εm␈ε0∞␈↓ εp␈ε0␈↓ πε␈ε0I␈α↓n␈α␈form␈α␈ac␈↓ λ∧␈ε0∞␈↓ λλ␈ε0␈↓ λ≡␈ε39␈ε#␈α(196␈α␈3),␈α∞2␈α␈5↑3␈α␈2.)␈α≥Let␈↓ 
m␈ε)v␈↓ ␈ε#=
␈β
d␈↓ ↓H␈ε#(␈↓ ↓S␈ε)v␈↓ ↓r␈ε)v␈↓ α_␈ε#.␈α¬.␈αε.␈↓ αD␈ε)v␈↓ αg␈ε#)␈↓ β
␈ε#be␈α
an␈α␈y␈α
rad␈α␈i␈α↓x␈ε)␈α
b␈ε#␈αin␈α␈te␈α␈ger,␈αwhe␈α␈re␈↓ ε=␈ε)v␈↓ εf␈ε7≤␈ε#␈α
0␈α␈.␈α∂P␈α↓e␈α␈rform␈αth␈α␈e␈αfollo␈α␈wi␈α↓n␈α␈g␈αo␈α␈pera␈α␈ti␈α↓o␈α␈ns:
␈β
p␈↓ ↓c␈ε&1␈↓ αβ␈ε&2␈↓ αT␈ε,n␈↓ αr␈ε,b␈↓ εN␈ε&1
␈β~␈↓ ↓M␈ε3N1.␈↓ α␈ε#If␈↓ α2␈ε)v␈↓ αb␈ε#<␈ε)␈α⊂b␈ε#␈α↓/␈α␈2,␈α⊂m␈α␈ultiply␈↓ ∧f␈ε)v␈↓ ¬π␈ε#b␈α␈y␈ε7␈α∂b␈ε#(␈ε)b␈ε#␈α+␈α
1)/(␈↓ εN␈ε)v␈↓ εx␈ε#+␈α
1)␈ε7c␈ε#.␈α≤Let␈α∂the␈α∂res␈α␈ult␈α∂of␈α⊂th␈α␈is␈α⊂st␈α␈ep␈α∂be
␈β%␈↓ αB␈ε&1␈↓ ε↑␈ε&1
␈βA␈↓ α␈ε#(␈↓ α↔␈ε)v␈↓ α7␈ε)v␈↓ αV␈ε)v␈↓ α|␈ε#.␈α¬.␈αε.␈↓ β(␈ε)v␈↓ βK␈ε#)␈↓ βc␈ε#.
␈βM␈↓ α(␈ε&0␈↓ αG␈ε&1␈↓ αg␈ε&2␈↓ β8␈ε,n␈↓ βV␈ε,b
␈βw␈↓ ↓M␈ε3N2.␈↓ α␈ε#If␈↓ α/␈ε)v␈↓ α[␈ε#=␈α
0␈α␈,␈α∞set␈↓ βf␈ε)v␈↓ ∧β␈ε7␈ ␈↓ ∧1␈ε)v␈↓ ∧K␈ε#+␈α	(1/␈ε)b␈ε#)␈ε7b␈ε)b␈ε#(␈ε)b␈ε7␈α	␈␈↓ ε"␈ε)v␈↓ εB␈ε#)/(␈↓ εi␈ε)v␈↓ π⊃␈ε#+␈α	1)␈ε7c␈↓ πd␈ε)v␈↓ πu␈ε#;␈α∞l␈α↓e␈α␈t␈α
the␈αresult␈α
o␈α␈f␈α
this␈α
step␈αbe
␈βα␈↓ α@␈ε&0␈↓ ε3␈ε&1␈↓ εy␈ε&1
␈β≡␈↓ α␈ε#(␈↓ α↔␈ε)v␈↓ α7␈ε)v␈↓ αV␈ε)v␈↓ α|␈ε#.␈α¬.␈αε.␈↓ β(␈ε)v␈↓ βK␈ε#.␈↓ βT␈ε)v␈↓ ∧$␈ε#.␈αε.␈αε.␈↓ ∧Q␈ε#)␈↓ ∧i␈ε#.␈α∂Rep␈α␈eat␈αste␈α␈p␈αN2␈αu␈α␈n␈α␈til␈↓ π>␈ε)v␈↓ πg␈ε7≤␈ε#␈α
0␈α␈.
␈β*␈↓ α(␈ε&0␈↓ αG␈ε&1␈↓ αg␈ε&2␈↓ β8␈ε,n␈↓ βd␈ε,n␈ε&+1␈↓ ∧\␈ε,b␈↓ πO␈ε&0
␈βT␈↓ ↓H␈ε#Pro␈α␈v␈α}e␈α
th␈α␈at␈α
ste␈α␈p␈α
N2␈αwi␈α↓ll␈α
b␈α␈e␈α
pe␈α␈rf␈α↓o␈α␈rmed␈αat␈α
most␈α
th␈α␈ree␈α
t␈α␈i␈α↓m␈α␈es,␈α∞a␈α␈nd␈αtha␈α␈t␈α
w␈α␈e␈α
m␈α␈u␈α␈st␈α
alw␈α␈a␈α␈y␈α␈s
␈β{␈↓ ↓H␈ε#h␈α␈a␈α␈v␈α␈e␈↓ α∀␈ε)v␈↓ α=␈ε#=␈α
1,␈↓ β
␈ε)v␈↓ β6␈ε#=␈α	0␈αat␈αth␈α␈e␈αen␈α␈d␈αof␈αth␈α␈e␈αcalcu␈α␈l␈α↓a␈α␈tions␈α␈.
␈β
π␈↓ α%␈ε&0␈↓ β≥␈ε&1
␈β
#␈↓ α␈ε#[␈ε0Note:␈ε#␈α∞If␈ε)␈α
u␈ε#␈α
an␈α␈d␈↓ βy␈ε)v␈↓ ∧↔␈ε#are␈αbo␈α␈th␈αm␈α␈ultiplied␈αby␈αth␈α␈e␈α
ab␈α␈o␈α␈v␈α}e␈α
co␈α␈nsta␈α␈n␈α␈ts,␈α
w␈α␈e␈α
d␈α␈o␈α
not␈α
c␈α␈ha␈α␈nge
␈β
K␈↓ ↓H␈ε#th␈α␈e␈α∩v␈α}a␈α␈lue␈α∩o␈α␈f␈α∩the␈α∩q␈α␈uo␈α␈ti␈α↓e␈α␈n␈α␈t␈ε)␈α∩u␈ε#/␈↓ ¬␈ε)v␈↓ ¬∩␈ε#,␈α∪and␈α⊃th␈α␈e␈α∩diviso␈α␈r␈α∩ha␈α␈s␈α∩bee␈α␈n␈α∩co␈α␈n␈α␈v␈α␈e␈α␈rted␈α⊃i␈α↓n␈α}to␈α∩th␈α␈e␈α∩form
␈β
s␈↓ ↓H␈ε#(1␈α␈0␈↓ ↓t␈ε)v␈↓ α→␈ε#.␈αε.␈αε.␈↓ αF␈ε)v␈↓ αh␈ε#.␈↓ αq␈ε)v␈↓ β<␈ε)v␈↓ ∧π␈ε)v␈↓ ∧R␈ε#)␈↓ ∧j␈ε#.␈α∀This␈α
form␈αof␈αthe␈αdivisor␈αi␈α↓s␈αv␈α␈ery␈αco␈α␈n␈α␈v␈α␈e␈α␈nien␈α␈t␈αbec␈α␈aus␈α␈e,␈α∞in
␈β
}␈↓ α∧␈ε&2␈↓ αV␈ε,n␈↓ βα␈ε,n␈ε&+1␈↓ βM␈ε,n␈ε&+2␈↓ ∧_␈ε,n␈ε&␈α␈+␈α↓3␈↓ ∧]␈ε,b
␈β∞~␈↓ ↓H␈ε#th␈α␈e␈α∂nota␈α␈ti␈α↓o␈α␈n␈α∞of␈α∂Algorith␈α␈m␈α∂D␈↓ ∧t␈ε#,␈α⊂w␈α␈e␈α∂m␈α␈a␈α␈y␈α∞si␈α↓m␈α␈ply␈α∞tak␈α␈e␈↓ πH␈ε)q␈↓ πI␈ε#∂␈↓ πj␈ε#=␈↓ λ~␈ε)u␈↓ λJ␈ε#as␈α∂a␈α∞trial␈α∂d␈α␈i␈α↓v␈α␈isor␈α∂a␈α␈t␈α∂the
␈β∞&␈↓ λ.␈ε,j
␈β∞B␈↓ ↓H␈ε#b␈α␈egin␈α␈ning␈α
of␈αstep␈αD3␈α␈,␈αo␈α␈r␈↓ ∧2␈ε)q␈↓ ∧3␈ε#∂␈↓ ∧M␈ε#=␈ε)␈α
b␈ε7␈αλ␈␈ε#␈απ1␈αwhen␈α
(␈↓ ε4␈ε)u␈↓ ε}␈ε#,␈↓ π␈ε)u␈↓ π.␈ε#)␈α	=␈α
(1␈α␈,␈αε0).]
␈β∞M␈↓ εH␈ε,j␈↓ εT␈ε:␈␈ε&1␈↓ π ␈ε,j
␈β∞w␈↓ ↓V␈ε329.␈↓ α␈ε#[␈ε)15␈↓ α;␈ε#]␈α⊗Pro␈α␈v␈α}e␈α
or␈α
d␈α␈i␈α↓sp␈α␈ro␈α␈v␈α}e:␈α⊂A␈α␈t␈α
th␈α␈e␈α
beg␈α␈i␈α↓n␈α␈nin␈α␈g␈α
of␈α
step␈αD7␈α
of␈α
Algorith␈α␈m␈α
D␈↓ 
β␈ε#,␈α∞w␈α␈e␈α
alw␈α␈a␈α␈y␈α␈s
␈β∂∨␈↓ ↓H␈ε#h␈α␈a␈α␈v␈α␈e␈↓ α∀␈ε)u␈↓ α?␈ε#=␈α	0.
␈β∂*␈↓ α(␈ε,j
␈β∂R␈↓ ↓;␈ε↓x
␈β∂T␈↓ ↓S␈ε33␈α␈0.␈↓ α␈ε#[␈ε)22␈↓ α;␈ε#]␈α⊗If␈α⊂memory␈α⊂sp␈α␈ace␈α⊂is␈α⊂l␈α↓imited␈α␈,␈α∩it␈α⊃m␈α␈a␈α␈y␈α⊂b␈α␈e␈α⊂desirab␈α␈le␈α⊂to␈α⊂use␈α⊂th␈α␈e␈α⊂same␈α⊂sto␈α␈rage
␈β∂|␈↓ ↓H␈ε#loc␈α␈ation␈α␈s␈αfor␈αb␈α␈oth␈α
inp␈α␈ut␈αa␈α␈nd␈α
ou␈α␈tpu␈α␈t␈αdu␈α␈ring␈α
the␈α
perfo␈α␈rman␈α␈ce␈αo␈α␈f␈αsome␈α
of␈αth␈α␈e␈αalg␈α␈orithm␈α␈s
␈β⊂#␈↓ ↓H␈ε#in␈α	th␈α␈i␈α↓s␈α	section␈α␈.␈α∂Is␈α	i␈α↓t␈α	po␈α␈ssible␈α
to␈α	h␈α␈a␈α␈v␈α␈e␈↓ ¬V␈ε)w␈↓ ¬⎇␈ε#,␈↓ ε⊂␈ε#.␈αε.␈αε.␈↓ ε=␈ε#,␈↓ εP␈ε)w␈↓ πβ␈ε#stored␈α	in␈α	the␈α	sam␈α␈e␈α
re␈α␈spect␈α␈i␈α↓v␈α}e␈α
loc␈α␈ation␈α␈s
␈β⊂/␈↓ ¬n␈ε&1␈↓ εh␈ε,n
␈β⊂K␈↓ ↓H␈ε#a␈α␈s␈↓ ↓n␈ε)u␈↓ α⊃␈ε#,␈↓ α$␈ε#.␈αε.␈αε.␈↓ αP␈ε#,␈↓ αc␈ε)u␈↓ β∩␈ε#or␈↓ β9␈ε)v␈↓ βY␈ε#,␈↓ βk␈ε#.␈αε.␈αε.␈↓ ∧_␈ε#,␈↓ ∧+␈ε)v␈↓ ∧W␈ε#d␈α␈ur␈α␈i␈α↓n␈α␈g␈α	Algorith␈α␈m␈α	A␈α
o␈α␈r␈α	S␈↓ π6␈ε#?␈α∞Is␈α	i␈α↓t␈α	p␈α␈ossible␈α	to␈α	h␈α␈a␈α␈v␈α␈e␈α	th␈α␈e␈α	qu␈α␈otien␈α}t
␈β⊂V␈↓ αα␈ε&1␈↓ αw␈ε,n␈↓ βI␈ε&1␈↓ ∧;␈ε,n
␈β⊂r␈↓ ↓H␈ε)q␈↓ ↓g␈ε#,␈↓ ↓␈␈ε#.␈αε.␈αε.␈↓ α,␈ε#,␈↓ αD␈ε)q␈↓ α{␈ε#occu␈α␈py␈α
the␈α
same␈α
l␈α↓o␈α␈cation␈α␈s␈α∞as␈↓ ε:␈ε)u␈↓ ε\␈ε#,␈↓ εt␈ε#.␈αε.␈αε.␈↓ π ␈ε#,␈↓ π8␈ε)u␈↓ πs␈ε#in␈α∞Alg␈α␈orithm␈α
D␈↓ 	W␈ε#?␈α↔Is␈α∞th␈α␈ere␈α∞a␈α␈n␈α␈y
␈β⊂}␈↓ ↓X␈ε&0␈↓ αT␈ε,m␈↓ εM␈ε&0␈↓ πL␈ε,m
␈β⊃~␈↓ ↓H␈ε#p␈α␈ermissible␈αo␈α}v␈α␈erlap␈α
of␈αmemory␈αloc␈α␈ation␈α␈s␈αbet␈α␈w␈α␈ee␈α␈n␈αinp␈α␈ut␈αan␈α␈d␈αo␈α␈utp␈α␈ut␈αin␈αAlgo␈α␈rithm␈αM␈α␈?
␈β∪(

␈β↓U␈↓ ↓H␈ε"268␈↓ 
b␈ε"4.3.1
␈β↓\␈↓ α=␈ε∞ARITH␈α↓MET␈α↓IC
␈βα%␈↓ ↓V␈ε331.␈↓ α␈ε#[␈ε)28␈↓ α;␈ε#]␈α⊗Assu␈α␈me␈αλtha␈α␈t␈ε)␈α	b␈ε#␈α	=␈α
3␈αλa␈α␈nd␈αλth␈α␈at␈ε)␈αλu␈ε#␈α
=␈α	(␈↓ εG␈ε)u␈↓ εp␈ε#.␈α¬.␈αε.␈↓ π≤␈ε)u␈↓ πt␈ε#)␈↓ λ∞␈ε#,␈↓ λ ␈ε)v␈↓ λ;␈ε#=␈α
(␈↓ λq␈ε)v␈↓ 	⊗␈ε#.␈αε.␈αε.␈↓ 	B␈ε)v␈↓ 	e␈ε#)␈↓ 
λ␈ε#a␈α␈re␈α	in␈α}teger␈α␈s
␈βα1␈↓ ε[␈ε&1␈↓ π/␈ε,m␈ε&+␈ε,␈α↓n␈↓ π␈␈ε&3␈↓ 	↓␈ε&1␈↓ 	S␈ε,n␈↓ 	p␈ε&3
␈βαM␈↓ ↓H␈ε#in␈↓ ↓m␈ε0b␈α␈alan␈α␈ced␈αλterna␈α␈ry␈ε#␈α	notation␈αλ(cf.␈α
S␈α␈ection␈αλ4.1),␈↓ ε`␈ε)v␈↓ π	␈ε7≤␈ε#␈α	0.␈α∞Design␈α	a␈α	lo␈α␈ng-d␈α␈ivision␈↓ 
 ␈ε#a␈α␈l␈α↓g␈α␈orithm
␈βαX␈↓ εp␈ε&1
␈βαr␈↓ 
n␈ε&1
␈βαt␈↓ ↓H␈ε#th␈α␈at␈α
divide␈α␈s␈ε)␈αu␈ε#␈αby␈↓ βL␈ε)v␈↓ β↑␈ε#,␈αob␈α␈tain␈α␈i␈α↓n␈α␈g␈αa␈α
rema␈α␈ind␈α␈er␈αwhose␈αa␈α␈bso␈α␈l␈α↓u␈α␈te␈αv␈α⎇alue␈α
doe␈α␈s␈αnot␈αex␈α␈ceed␈↓ 
␈␈ε7j␈↓ λ␈ε)v␈↓ ~␈ε7j␈ε#.
␈ββ¬␈↓ 
n␈ε&2
␈ββπ␈↓ 
n␈∧βπ
nα∞
␈ββ≤␈↓ ↓H␈ε#T␈α⎇ry␈α∞to␈α∂|␈α␈nd␈α∞a␈α␈n␈α∂a␈α␈l␈α↓g␈α␈orithm␈α∞tha␈α␈t␈α∂w␈α␈ou␈α␈ld␈α∂b␈α␈e␈α∂e}␈α␈cien␈α␈t␈α∞i␈α↓f␈α∞i␈α↓n␈α␈corp␈α␈ora␈α␈ted␈α∞i␈α↓n␈α}to␈α∂th␈α␈e␈α∂a␈α␈rithme␈α␈ti␈α↓c
␈ββD␈↓ ↓H␈ε#c␈α␈i␈α↓rc␈α␈uitry␈αo␈α␈f␈αa␈α
bala␈α␈nced␈α
tern␈α␈ary␈αc␈α␈omp␈α␈uter.
␈ββv␈↓ ↓V␈ε332.␈↓ α␈ε#[␈ε)M4␈α␈0␈↓ α\␈ε#]␈α⊗Assum␈α␈e␈αtha␈α␈t␈ε)␈αb␈ε#␈α=␈α2␈ε)␈α␈i␈ε#␈αan␈α␈d␈αth␈α␈at␈ε)␈αu␈ε#␈α
a␈α␈nd␈↓ π→␈ε)v␈↓ π7␈ε#are␈αcomp␈α␈lex␈αn␈α}um␈α␈b␈α␈ers␈αex␈α␈pre␈α␈ssed␈αin
␈β∧≥␈↓ ↓H␈ε#th␈α␈e␈↓ αβ␈ε#q␈α␈ua␈α␈ter-imag␈α␈i␈α↓n␈α␈ary␈αn␈α␈u␈α␈m␈α␈b␈α␈er␈α
sy␈α␈stem.␈↓ εα␈ε#De␈α␈si␈α↓g␈α␈n␈αalgorith␈α␈ms␈α
th␈α␈at␈αdivid␈α␈e␈ε)␈α
u␈ε#␈α
b␈α␈y␈↓ 
∀␈ε)v␈↓ 
%␈ε#,␈α∞p␈α␈erh␈α␈ap␈α␈s
␈β∧E␈↓ ↓H␈ε#o␈α␈bta␈α␈i␈α↓n␈α␈ing␈α	a␈α	suitab␈α␈le␈α
rem␈α␈aind␈α␈er␈α
o␈α␈f␈α
som␈α␈e␈α
so␈α␈rt,␈α
and␈α	co␈α␈mp␈α␈are␈α	their␈α
e␈α␈}cien␈α␈cy.␈α∀[␈ε0Re␈α␈f␈α↓e␈α␈renc␈α␈es:
␈β∧m␈↓ ↓H␈ε#M␈α␈.␈↓ ↓⎇␈ε#Nad␈α␈l␈α↓e␈α␈r,␈ε0␈α⊂CACM␈ε3␈α∞4␈ε#␈α∞(␈α↓1␈α␈961␈α␈),␈α⊂192␈α␈↑19␈α␈3;␈α⊃Z.␈↓ ε8␈ε#Pa␈α␈wlak␈α∞and␈α∞A.␈↓ λ&␈ε#W␈α}a␈α␈ku␈α␈li␈α↓c␈α␈z,␈ε0␈α⊂Bull.␈α⊂d␈α␈e␈α∂l'Acad␈α␈.
␈β¬∀␈↓ ↓H␈ε0Po␈α␈l␈α↓o␈α␈naise␈αλde␈α␈s␈α	S␈α␈cience␈α␈s␈ε#,␈α
Classe␈αλIII,␈ε3␈α	5␈ε#␈αλ(195␈α␈7),␈α	233␈α␈↑23␈α␈6␈α	(se␈α␈e␈α	a␈α␈l␈α↓so␈αλp␈α␈p.␈α∞80␈α␈3↑8␈α␈04);␈α	and␈αλe␈α␈xerc␈α␈i␈α↓se
␈β¬<␈↓ ↓H␈ε#4␈α␈.␈α↓1␈α␈↑1␈α␈5.]
␈β¬n␈↓ ↓V␈ε333.␈↓ α␈ε#[␈ε)M4␈α␈0␈↓ α\␈ε#]␈α⊗Design␈αλan␈αλalg␈α␈orithm␈αλfor␈αλtakin␈α␈g␈↓ ε<␈ε#sq␈α␈ua␈α␈re␈α	roots,␈α	an␈α␈alogo␈α␈us␈αλto␈αλA␈α↓lg␈α␈orithm␈αλD␈α	a␈α␈nd
␈βε⊗␈↓ ↓H␈ε#to␈α
the␈αtra␈α␈dition␈α␈al␈αpen␈α␈cil-␈α↓a␈α␈nd␈α␈-pa␈α␈per␈αme␈α␈th␈α↓o␈α␈d␈αfor␈αex␈α␈trac␈α␈ti␈α↓n␈α␈g␈αsq␈α␈uare␈α
ro␈α↓ots.
␈βεH␈↓ ↓V␈ε334.␈↓ α␈ε#[␈ε)40␈↓ α;␈ε#]␈α⊗Dev␈α}elop␈αa␈αset␈αof␈αcomp␈α␈ute␈α␈r␈α
su␈α␈bro␈α␈utine␈α␈s␈α
for␈αdo␈α␈ing␈αth␈α␈e␈α
fou␈α␈r␈αarithme␈α␈ti␈α↓c␈αo␈α␈pera␈α␈-
␈βεo␈↓ ↓H␈ε#tio␈α␈ns␈αon␈α
arb␈α␈itrary␈α
i␈α↓n␈α}tege␈α␈rs,␈αpu␈α␈tti␈α↓n␈α␈g␈αno␈αc␈α␈onst␈α␈rain␈α␈t␈αo␈α␈n␈αth␈α␈e␈αsize␈αo␈α␈f␈αthe␈αin␈α}tegers␈α
exce␈α␈pt␈αfo␈α␈r
␈βπ↔␈↓ ↓H␈ε#th␈α␈e␈α
imp␈α␈li␈α↓cit␈α
a␈α␈ssum␈α␈ption␈α	tha␈α␈t␈α
th␈α␈e␈α
tota␈α␈l␈α
mem␈α↓o␈α␈ry␈α
c␈α␈apa␈α␈cit␈α␈y␈α
o␈α␈f␈α
the␈α	comp␈α␈ute␈α␈r␈α
sh␈α↓o␈α␈uld␈α	n␈α↓o␈α␈t␈α
be
␈βπ?␈↓ ↓H␈ε#e␈α␈xcee␈α␈ded␈α␈.␈α≥(Use␈↓ β:␈ε#li␈α↓n␈α␈k␈α␈e␈α␈d␈α
m␈α␈em␈α↓o␈α␈ry␈α
a␈α␈ll␈α↓o␈α␈cation␈α␈,␈α
so␈α
th␈α␈at␈αn␈α↓o␈αtime␈αi␈α↓s␈αw␈α␈asted␈αin␈α|n␈α␈din␈α␈g␈α
r␈α␈o␈α↓om
␈βπf␈↓ ↓H␈ε#to␈α
pu␈α␈t␈αthe␈αres␈α␈ults.)
␈βλ_␈↓ ↓V␈ε335.␈↓ α␈ε#[␈ε)40␈↓ α;␈ε#]␈α⊗Dev␈α}elop␈α
a␈αset␈α
of␈αco␈α␈mpu␈α␈ter␈αsu␈α␈bro␈α␈utin␈α␈es␈αfor␈α
\␈↓ πV␈ε#de␈α␈cup␈α␈le-prec␈α␈i␈α↓sion␈↓ 	Y␈ε#⎇␈α␈oatin␈α␈g␈αp␈α␈oin␈α␈t"
␈βλ@␈↓ ↓H␈ε#a␈α␈rithme␈α␈ti␈α↓c␈α␈,␈α∩u␈α␈sing␈α∂exce␈α␈ss␈α⊂0,␈α⊃b␈α␈ase␈ε)␈α⊂b␈ε#,␈α⊃nine␈α␈-place␈α∂⎇o␈α␈ating␈α∂po␈α␈i␈α↓n␈α}t␈α⊂n␈α␈u␈α␈m␈α␈b␈α␈er␈α⊂rep␈α␈resen␈α}tation␈α␈,
␈βλh␈↓ ↓H␈ε#wh␈α␈ere␈ε)␈αb␈ε#␈αis␈αthe␈αcom␈α␈pu␈α␈ter␈αw␈α␈ord␈αsize,␈αand␈αallo␈α␈wing␈αa␈αfu␈α␈l␈α↓l␈αw␈α␈ord␈αfor␈αth␈α␈e␈αex␈α␈po␈α␈nen␈α}t.␈α≠(Th␈α␈u␈α␈s
␈β	∂␈↓ ↓H␈ε#e␈α␈ach␈α
⎇oa␈α␈ting␈α∞p␈α␈oin␈α␈t␈α∞n␈α}um␈α␈b␈α␈er␈α∞is␈α∞rep␈α␈resen␈α}ted␈α∞in␈α
10␈α∞w␈α␈ord␈α␈s␈α∞of␈α∞me␈α␈m␈α↓ory␈α␈,␈α∂an␈α␈d␈α∞all␈α∞scaling␈α
is
␈β	7␈↓ ↓H␈ε#d␈α␈on␈α␈e␈αby␈α
m␈α↓o␈α␈v␈α␈i␈α↓n␈α␈g␈αfu␈α␈l␈α↓l␈αw␈α␈ord␈α␈s␈αi␈α↓n␈α␈stea␈α␈d␈αof␈αb␈α␈y␈αshi$ing␈α
wi␈α↓th␈α␈in␈αth␈α␈e␈αw␈α␈ords␈α␈.␈α↓)
␈β	i␈↓ ↓V␈ε336.␈↓ α␈ε#[␈ε)M4␈α␈2␈↓ α\␈ε#]␈α⊗Comp␈α␈ute␈α
th␈α␈e␈αv␈α⎇alues␈α
of␈α
the␈α
fun␈α␈da␈α␈men␈α␈ta␈α␈l␈αco␈α␈nsta␈α␈n␈α␈ts␈α
l␈α↓isted␈α
in␈α
App␈α␈en␈α␈dix␈α
B␈αto
␈β
⊂␈↓ ↓H␈ε#m␈α}uch␈αh␈α␈igh␈α␈er␈αprec␈α␈i␈α↓sion␈αtha␈α␈n␈αthe␈α4␈α␈0-p␈α␈l␈α↓a␈α␈ce␈αv␈α}alu␈α␈es␈αl␈α↓isted␈αther␈α␈e.␈α≤[␈ε0Note␈α␈:␈ε#␈α∞The␈α|␈α␈rst␈α100␈α␈,000
␈β
8␈↓ ↓H␈ε#d␈α␈igits␈↓ α#␈ε#of␈αth␈α␈e␈αd␈α␈ecima␈α␈l␈αexp␈α␈an␈α␈si␈α↓o␈α␈n␈αo␈α␈f␈↓ ¬C␈ε)→␈↓ ¬c␈ε#w␈α␈ere␈αp␈α␈ub␈α␈li␈α↓sh␈α␈ed␈αby␈αD.␈↓ λ$␈ε#Sh␈α␈an␈α␈ks␈αa␈α␈nd␈αJ.␈αW.␈↓ 
5␈ε#W␈α}re␈α␈nch␈α␈,
␈β
`␈↓ ↓H␈ε#J␈α␈r.,␈αin␈ε0␈αMa␈α␈th.␈αComp␈α␈.␈ε3␈α1␈α␈6␈ε#␈α(196␈α␈2),␈α76↑␈α␈99.␈α∂One␈αm␈α␈i␈α↓llion␈αd␈α␈igits␈αo␈α␈f␈↓ λ5␈ε)→␈↓ λT␈ε#w␈α␈ere␈αco␈α␈mpu␈α␈ted␈αb␈α␈y␈αJ␈α␈ean
␈βπ␈↓ ↓H␈ε#Gu␈α␈il␈α↓lo␈α␈ud␈αa␈α␈nd␈α
Mar␈α␈ti␈α↓n␈α␈e␈αBou␈α␈y␈α␈er␈αof␈αth␈α␈e␈αF␈α}re␈α␈nch␈α
A␈α␈tomic␈αEne␈α␈rgy␈αCo␈α␈mmission␈α
i␈α↓n␈α
197␈α␈4.]
␈β7␈↓ ↓;␈ε↓x
␈β9␈↓ ↓S␈ε33␈α␈7.␈↓ α␈ε#[␈ε)20␈↓ α;␈ε#]␈α⊗(E.␈↓ β∂␈ε#Sa␈α␈lamin.)␈α_Exp␈α␈lain␈αho␈α␈w␈αto␈α
a␈α␈v␈α}oid␈αth␈α␈e␈αnorma␈α␈li␈α↓z␈α␈ation␈α
an␈α␈d␈αu␈α␈nnorm␈α␈ali␈α↓z␈α␈ation
␈βa␈↓ ↓H␈ε#ste␈α␈ps␈αo␈α␈f␈αA␈α↓lg␈α␈orithm␈α
D␈↓ βy␈ε#,␈αwh␈α␈en␈ε)␈αd␈ε#␈αis␈αa␈α
po␈α␈w␈α␈er␈αo␈α␈f␈α2␈αon␈α
a␈αb␈α␈inar␈α␈y␈αco␈α␈mpu␈α␈ter,␈αwith␈α↓ou␈α␈t␈αch␈α␈an␈α␈ging
␈β	␈↓ ↓H␈ε#th␈α␈e␈α⊂seq␈α␈uen␈α␈ce␈α⊂o␈α␈f␈α⊃tria␈α␈l␈α⊃q␈α␈uot␈α␈i␈α↓en␈α}t␈α⊂digits␈α⊂co␈α␈mp␈α␈uted␈α∂by␈α∂tha␈α␈t␈α⊂algorith␈α␈m.␈α#(Ho␈α␈w␈α⊂can␈↓ 
i␈ε)q␈↓ 
j␈ε#∂␈↓ ␈ε#be
␈β0␈↓ ↓H␈ε#c␈α␈omp␈α␈uted␈α
in␈αstep␈α
D3␈αif␈αth␈α␈e␈αnorma␈α␈l␈α↓iza␈α␈ti␈α↓o␈α␈n␈αo␈α␈f␈αste␈α␈p␈αD1␈αh␈α␈asn␈α␈'␈α↓t␈αb␈α␈een␈α
don␈α␈e?)
␈β
+␈↓ ↓4␈ε=*␈↓ ↓H␈ε=4␈α␈.3.2.␈↓ α6␈ε=M␈α␈odul␈α↓a␈α␈r␈α∞Ar␈α↓ithm␈α↓e␈α␈t␈α↓ic
␈β
l␈↓ ↓H␈ε"An␈α↓other␈αin␈α␈teresting␈αalternativ␈α␈e␈αis␈αa␈α␈v␈α}ailable␈αfor␈αdoing␈αarithmetic␈αon␈αlarge␈αin␈α␈teger
␈β∞↔␈↓ ↓H␈ε"n␈α␈um␈α␈bers,␈αbased␈α
on␈αsome␈αsimple␈αprinciples␈α
of␈αn␈α␈um␈α␈ber␈αtheory.␈α∂The␈αidea␈αis␈αto␈α
ha␈α␈v␈α␈e
␈β∞B␈↓ ↓H␈ε"sev␈α␈eral␈α\m␈α↓oduli"␈↓ βY␈ε(m␈↓ ∧	␈ε",␈↓ ∧≡␈ε(m␈↓ ∧O␈ε",␈↓ ∧d␈ε".␈αε.␈αε.␈↓ ¬∀␈ε",␈↓ ¬)␈ε(m␈↓ ¬c␈ε"that␈αcon␈α␈tain␈αn␈α↓o␈αcomm␈α↓on␈αfactors,␈αand␈αto␈αw␈α␈ork
␈β∞O␈↓ βx␈ε%1␈↓ ∧>␈ε%2␈↓ ¬I␈ε+r
␈β∞m␈↓ ↓H␈ε"indirectly␈α	with␈α
\residues"␈ε(␈α
u␈↓ ∧z␈ε"mod␈↓ ¬D␈ε(m␈↓ ¬u␈ε",␈ε(␈α
u␈↓ ε$␈ε"mod␈↓ εn␈ε(m␈↓ π≡␈ε",␈↓ π2␈ε".␈αε.␈αε.␈↓ πb␈ε",␈ε(␈αu␈↓ λ⊃␈ε"mod␈↓ λ[␈ε(m␈↓ 	∀␈ε"instead␈α
of␈α	directly
␈β∞z␈↓ ¬d␈ε%1␈↓ π∞␈ε%2␈↓ λ{␈ε+r
␈β∂→␈↓ ↓H␈ε"with␈αthe␈αn␈α␈um␈α␈ber␈ε(␈αu␈ε"␈α␈.
␈β∂D␈↓ α␈ε"F␈α⎇or␈αcon␈α␈v␈α␈enience␈αin␈αn␈α↓otation␈αthrough␈α↓out␈αthis␈αsection,␈αlet
␈β⊂_␈↓ α.␈ε(u␈↓ α↑␈ε"=␈ε(␈α
u␈↓ β&␈ε"mod␈↓ βp␈ε(m␈↓ ∧!␈ε",␈↓ ∧y␈ε(u␈↓ ¬)␈ε"=␈ε(␈α
u␈↓ ¬q␈ε"mod␈↓ ε;␈ε(m␈↓ εl␈ε",␈↓ πD␈ε".␈αε.␈αε.␈↓ πt␈ε",␈↓ λL␈ε(u␈↓ λz␈ε"=␈ε(␈α
u␈↓ 	C␈ε"mod␈↓ 

␈ε(m␈↓ 
<␈ε".␈↓ α␈ε"(1)
␈β⊂%␈↓ αC␈ε%1␈↓ ∧⊂␈ε%1␈↓ ¬∞␈ε%2␈↓ ε[␈ε%2␈↓ λa␈ε+r␈↓ 
-␈ε+r
␈β⊂m␈↓ ↓H␈ε"It␈α⊂is␈α⊃easy␈α⊂to␈α⊂compute␈α⊃(␈↓ ∧A␈ε(u␈↓ ∧f␈ε",␈↓ ∧v␈ε(u␈↓ ¬≤␈ε",␈↓ ¬,␈ε".␈αε.␈αε.␈↓ ¬\␈ε",␈↓ ¬l␈ε(u␈↓ ε⊂␈ε")␈α⊃from␈α⊂an␈α⊂in␈α␈teger␈α⊃n␈α␈um␈α␈ber␈ε(␈α⊂u␈ε"␈α⊃by␈α⊂means␈α⊂of
␈β⊂y␈↓ ∧V␈ε%1␈↓ ¬␈ε%2␈↓ ε↓␈ε+r
␈β⊃_␈↓ ↓H␈ε"division;␈α
and␈α
it␈αis␈α
importan␈α␈t␈α
to␈αn␈α↓ote␈α
that␈α
n␈α↓o␈α
information␈αis␈α
lost␈α
in␈α
this␈αprocess,
␈β∪(

␈β↓U␈↓ ↓H␈ε"4.3.2␈↓ 
v␈ε"269
␈β↓\␈↓ π:␈ε∞MOD␈α↓ULAR␈α
ARIT␈α↓HME␈α↓TIC
␈βα"␈↓ ↓H␈ε"since␈αw␈α␈e␈αcan␈αrecompute␈ε(␈αu␈ε"␈αfrom␈α(␈↓ ¬I␈ε(u␈↓ ¬o␈ε",␈↓ ¬␈␈ε(u␈↓ ε$␈ε",␈↓ ε4␈ε".␈αε.␈αε.␈↓ εd␈ε",␈↓ εt␈ε(u␈↓ π_␈ε")␈αpro␈α␈vided␈αthat␈ε(␈αu␈ε"␈αis␈αn␈α↓ot␈αto␈α↓o␈αlarge.
␈βα/␈↓ ¬↑␈ε%1␈↓ ε∪␈ε%2␈↓ π	␈ε+r
␈βαM␈↓ ↓H␈ε"F␈α⎇or␈α∂example,␈α⊂if␈α⊂0␈ε6␈α⊂∀␈ε(␈α∂u␈ε"␈α⊂<␈↓ ∧|␈ε(v␈↓ ¬≡␈ε6∀␈ε"␈α⊂1000,␈α⊃it␈α∂is␈α⊂impossible␈α∂to␈α∂ha␈α␈v␈α␈e␈α⊂(␈ε(u␈↓ 	b␈ε"mod␈↓ 
,␈ε"7,␈ε(␈αεu␈↓ 
h␈ε"mod
␈βαy␈↓ ↓H␈ε"11,␈ε(␈αεu␈↓ α⊗␈ε"mod␈↓ α`␈ε"13)␈αequal␈αto␈α(␈↓ ∧/␈ε(v␈↓ ∧H␈ε"mod␈↓ ¬∩␈ε"7,␈↓ ¬4␈ε(v␈↓ ¬M␈ε"mod␈↓ ε↔␈ε"11,␈↓ εK␈ε(v␈↓ εd␈ε"mod␈↓ π.␈ε"13).␈α⊂This␈αis␈αa␈α
consequence␈αof␈αthe
␈ββ$␈↓ ↓H␈ε"\␈↓ ↓Z␈ε"Chinese␈αremainder␈αtheorem"␈αstated␈αbelo␈α␈w.
␈ββO␈↓ α␈ε"W␈α⎇e␈αma␈α␈y␈αtherefore␈αregard␈α
(␈↓ ¬&␈ε(u␈↓ ¬L␈ε",␈↓ ¬\␈ε(u␈↓ ε↓␈ε",␈↓ ε⊃␈ε".␈αε.␈αε.␈↓ εA␈ε",␈↓ εQ␈ε(u␈↓ εv␈ε")␈α
as␈αa␈αnew␈αt␈α␈ype␈αof␈αin␈α␈ternal␈α
computer
␈ββ[␈↓ ¬;␈ε%1␈↓ ¬q␈ε%2␈↓ εf␈ε+r
␈ββz␈↓ ↓H␈ε"represen␈α␈tation,␈αa␈α\m␈α↓odular␈αrepresen␈α␈tation,"␈αof␈αthe␈αin␈α␈teger␈ε(␈αu␈ε"␈α␈.
␈β∧%␈↓ α␈ε"The␈αadv␈α}an␈α␈tages␈αof␈αa␈αm␈α↓odular␈αrepresen␈α␈tation␈αare␈αthat␈αaddition,␈αsubtraction,
␈β∧Q␈↓ ↓H␈ε"and␈αm␈α␈ultiplication␈αare␈αv␈α␈ery␈αsimple:
␈β¬∧␈↓ ¬<␈ε↓␈␈↓ 
?␈ε↓↓
␈β¬"␈↓ ↓s␈ε"(␈↓ ↓␈␈ε(u␈↓ α%␈ε",␈↓ α5␈ε".␈αε.␈αε.␈↓ αe␈ε",␈↓ αu␈ε(u␈↓ β→␈ε")␈αλ+␈αλ(␈↓ βe␈ε(v␈↓ ∧π␈ε",␈↓ ∧↔␈ε".␈αε.␈αε.␈↓ ∧G␈ε",␈↓ ∧W␈ε(v␈↓ ∧x␈ε")␈↓ ¬∞␈ε"=␈↓ ¬J␈ε"(␈↓ ¬V␈ε(u␈↓ ε∧␈ε"+␈↓ ε0␈ε(v␈↓ εR␈ε")␈↓ εd␈ε"mod␈↓ π.␈ε(m␈↓ π←␈ε",␈↓ πo␈ε".␈αε.␈αε.␈↓ λ∨␈ε",␈αε(␈↓ λ;␈ε(u␈↓ λg␈ε"+␈↓ 	∪␈ε(v␈↓ 	4␈ε")␈↓ 	F␈ε"mod␈↓ 
⊂␈ε(m␈↓ 
M␈ε",␈↓ α␈ε"(2)
␈β¬/␈↓ α∀␈ε%1␈↓ β
␈ε+r␈↓ βv␈ε%1␈↓ ∧i␈ε+r␈↓ ¬k␈ε%1␈↓ εA␈ε%1␈↓ πN␈ε%1␈↓ λO␈ε+r␈↓ 	$␈ε+r␈↓ 
/␈ε+r
␈β¬:␈↓ ¬<␈ε↓␈␈↓ 
?␈ε↓↓
␈β¬X␈↓ ↓s␈ε"(␈↓ ↓␈␈ε(u␈↓ α%␈ε",␈↓ α5␈ε".␈αε.␈αε.␈↓ αe␈ε",␈↓ αu␈ε(u␈↓ β→␈ε")␈ε6␈αλ␈␈ε"␈αλ(␈↓ βe␈ε(v␈↓ ∧π␈ε",␈↓ ∧↔␈ε".␈αε.␈αε.␈↓ ∧G␈ε",␈↓ ∧W␈ε(v␈↓ ∧x␈ε")␈↓ ¬∞␈ε"=␈↓ ¬J␈ε"(␈↓ ¬V␈ε(u␈↓ ε∧␈ε6␈␈↓ ε0␈ε(v␈↓ εR␈ε")␈↓ εd␈ε"mod␈↓ π.␈ε(m␈↓ π←␈ε",␈↓ πo␈ε".␈αε.␈αε.␈↓ λ∨␈ε",␈αε(␈↓ λ;␈ε(u␈↓ λg␈ε6␈␈↓ 	∪␈ε(v␈↓ 	4␈ε")␈↓ 	F␈ε"mod␈↓ 
⊂␈ε(m␈↓ 
M␈ε",␈↓ α␈ε"(3)
␈β¬e␈↓ α∀␈ε%1␈↓ β
␈ε+r␈↓ βv␈ε%1␈↓ ∧i␈ε+r␈↓ ¬k␈ε%1␈↓ εA␈ε%1␈↓ πN␈ε%1␈↓ λO␈ε+r␈↓ 	$␈ε+r␈↓ 
/␈ε+r
␈β¬p␈↓ ¬<␈ε↓␈␈↓ 
?␈ε↓↓
␈βε∞␈↓ ↓s␈ε"(␈↓ ↓␈␈ε(u␈↓ α%␈ε",␈↓ α5␈ε".␈αε.␈αε.␈↓ αe␈ε",␈↓ αu␈ε(u␈↓ β→␈ε")␈ε6␈αλα␈ε"␈αλ(␈↓ βe␈ε(v␈↓ ∧π␈ε",␈↓ ∧↔␈ε".␈αε.␈αε.␈↓ ∧G␈ε",␈↓ ∧W␈ε(v␈↓ ∧x␈ε")␈↓ ¬∞␈ε"=␈↓ ¬J␈ε"(␈↓ ¬V␈ε(u␈↓ ε∧␈ε6α␈↓ ε0␈ε(v␈↓ εR␈ε")␈↓ εd␈ε"mod␈↓ π.␈ε(m␈↓ π←␈ε",␈↓ πo␈ε".␈αε.␈αε.␈↓ λ∨␈ε",␈αε(␈↓ λ;␈ε(u␈↓ λg␈ε6α␈↓ 	∪␈ε(v␈↓ 	4␈ε")␈↓ 	F␈ε"mod␈↓ 
⊂␈ε(m␈↓ 
M␈ε".␈↓ α␈ε"(4)
␈βε≠␈↓ α∀␈ε%1␈↓ β
␈ε+r␈↓ βv␈ε%1␈↓ ∧i␈ε+r␈↓ ¬k␈ε%1␈↓ εA␈ε%1␈↓ πN␈ε%1␈↓ λO␈ε+r␈↓ 	$␈ε+r␈↓ 
/␈ε+r
␈βεb␈↓ ↓H␈ε"T␈α⎇o␈αderiv␈α␈e␈α(4),␈αfor␈αexample,␈αw␈α␈e␈αneed␈αto␈αsh␈α↓o␈α␈w␈αthat
␈βπ6␈↓ βa␈ε(u␈↓ βu␈ε(v␈↓ ∧∞␈ε"mod␈↓ ∧X␈ε(m␈↓ ¬⊃␈ε"=␈α
(␈ε(u␈↓ ¬f␈ε"mod␈↓ ε0␈ε(m␈↓ ε←␈ε")(␈↓ εw␈ε(v␈↓ π⊂␈ε"mod␈↓ πZ␈ε(m␈↓ λ	␈ε")␈↓ λ≠␈ε"mod␈↓ λe␈ε(m
␈βπB␈↓ ∧x␈ε+j␈↓ εP␈ε+j␈↓ πy␈ε+j␈↓ 	∧␈ε+j
␈βλ
␈↓ ↓H␈ε"for␈α⊂each␈α⊂m␈α↓odulus␈↓ βo␈ε(m␈↓ ∧≡␈ε".␈α≤But␈α⊂this␈α⊃is␈α⊂a␈α⊂basic␈α⊂fact␈α⊂of␈α⊂elemen␈α␈tary␈α⊂n␈α␈um␈α␈ber␈α⊂theory:
␈βλ⊗␈↓ ∧∂␈ε+j
␈βλ/␈↓ #␈ε90
␈βλ5␈↓ ↓H␈ε(x␈↓ ↓b␈ε"mod␈↓ α,␈ε(m␈↓ αe␈ε"=␈↓ β∀␈ε(y␈↓ β-␈ε"mod␈↓ βw␈ε(m␈↓ ∧2␈ε"if␈α
and␈αonly␈α
if␈ε(␈αx␈ε6␈α⊃␈↓ εZ␈ε(y␈↓ εx␈ε"(modulo␈↓ λ∧␈ε(m␈↓ λ3␈ε");␈α
furtherm␈α↓ore␈αif␈ε(␈αx␈ε6␈α⊃␈↓ ∂␈ε(x
␈βλA␈↓ αK␈ε+j␈↓ ∧↔␈ε+j␈↓ λ$␈ε+j
␈βλZ␈↓ αy␈ε90␈↓ ∧o␈ε90␈↓ ¬␈ε90
␈βλ`␈↓ ↓H␈ε"and␈↓ α⊃␈ε(y␈↓ α3␈ε6⊃␈↓ αf␈ε(y␈↓ ββ␈ε",␈α∂then␈ε(␈α⊂x␈↓ ∧ε␈ε(y␈↓ ∧(␈ε6⊃␈↓ ∧[␈ε(x␈↓ ∧x␈ε(y␈↓ ¬$␈ε"(modulo␈↓ ε0␈ε(m␈↓ ε←␈ε");␈α⊃hence␈α∂(␈ε(u␈↓ λ∀␈ε"mod␈↓ λ↑␈ε(m␈↓ 	
␈ε")(␈↓ 	%␈ε(v␈↓ 	=␈ε"mod␈↓ 
π␈ε(m␈↓ 
6␈ε")␈ε6␈α⊂⊃␈ε(␈α∂u␈↓ ~␈ε(v
␈βλl␈↓ εP␈ε+j␈↓ λ⎇␈ε+j␈↓ 
'␈ε+j
␈β	␈↓ ↓H␈ε"(modulo␈↓ αT␈ε(m␈↓ ββ␈ε").
␈β	_␈↓ αs␈ε+j
␈β	6␈↓ α␈ε"The␈αdisadv␈α}an␈α␈tages␈αof␈αa␈α
m␈α↓odular␈αrepresen␈α␈tation␈αare␈αthat␈αit␈αis␈αcomparativ␈α␈ely
␈β	b␈↓ ↓H␈ε"di}cult␈α	to␈α
test␈α	whether␈α	a␈α
n␈α␈um␈α␈ber␈α	is␈α
positiv␈α␈e␈α	or␈α
negativ␈α␈e␈α	or␈α
to␈α	test␈α
whether␈α	or␈α	n␈α↓ot
␈β

␈↓ ↓H␈ε"(␈↓ ↓T␈ε(u␈↓ ↓y␈ε",␈↓ α	␈ε".␈αε.␈αε.␈↓ α9␈ε",␈↓ αI␈ε(u␈↓ αm␈ε")␈αis␈αgreater␈αthan␈α(␈↓ ¬α␈ε(v␈↓ ¬%␈ε",␈↓ ¬5␈ε".␈αε.␈αε.␈↓ ¬e␈ε",␈↓ ¬u␈ε(v␈↓ ε⊗␈ε").␈α∂It␈αis␈αalso␈αdi}cult␈αto␈αtest␈αwhether␈αor␈αn␈α↓ot
␈β
→␈↓ ↓h␈ε%1␈↓ α↑␈ε+r␈↓ ¬∀␈ε%1␈↓ εε␈ε+r
␈β
8␈↓ ↓H␈ε"o␈α␈v␈α␈er⎇o␈α␈w␈α
has␈α
occurred␈α
as␈α
the␈α
result␈α
of␈α
an␈α
addition,␈αsubtraction,␈α
or␈α
m␈α␈ultiplication,
␈β
c␈↓ ↓H␈ε"and␈α⊂it␈α⊂is␈α⊃ev␈α␈en␈α⊂m␈α↓ore␈α⊂di}cult␈α⊃to␈α⊂perform␈α⊂division.␈α≥When␈α⊃these␈α⊂operations␈α⊂are
␈β∞␈↓ ↓H␈ε"required␈αλfrequen␈α␈tly␈αλin␈α	conjunction␈αλwith␈αλaddition,␈α	subtraction,␈α	and␈αλm␈α␈ultiplication,
␈β:␈↓ ↓H␈ε"the␈α
use␈α∞of␈α
m␈α↓odular␈α∞arithmetic␈α
can␈α∞be␈α
justi|ed␈α∞only␈α
if␈α∞fast␈α
means␈α∞of␈α
con␈α␈v␈α␈ersion
␈βe␈↓ ↓H␈ε"in␈α␈to␈α
and␈α
out␈α
of␈α∞the␈α
m␈α↓odular␈α
represen␈α␈tation␈α
are␈α∞a␈α␈v␈α}ailable.␈α∪Therefore␈α
con␈α␈v␈α␈ersion
␈β⊂␈↓ ↓H␈ε"bet␈α␈w␈α␈een␈α	m␈α↓odular␈α
and␈α
positional␈α
n␈α↓otation␈α
is␈α
one␈α	of␈α
the␈α
principal␈α
topics␈α
of␈α	in␈α␈terest
␈β;␈↓ ↓H␈ε"to␈αus␈αin␈αthis␈αsection.
␈βf␈↓ α␈ε"The␈α
processes␈α
of␈α
addition,␈α
subtraction,␈αand␈α
m␈α␈ultiplication␈α
using␈α
(2),␈α
(3),␈α
and
␈β
∩␈↓ ↓H␈ε"(4)␈α
are␈α∞called␈α
residue␈α∞arithmetic␈α
or␈ε/␈α∞m␈α↓odular␈α
arithmetic.␈ε"␈α∃The␈α
range␈α∞of␈α
n␈α␈um␈α␈bers
␈β
=␈↓ ↓H␈ε"that␈α
can␈α∞be␈α∞handled␈α
by␈α∞m␈α↓odular␈α∞arithmetic␈α∞is␈α
equal␈α∞to␈ε(␈α∞m␈ε"␈α=␈↓ 	≤␈ε(m␈↓ 	M␈ε(m␈↓ 
β␈ε".␈αε.␈αε.␈↓ 
3␈ε(m␈↓ 
b␈ε",␈α∞the
␈β
I␈↓ 	<␈ε%1␈↓ 	l␈ε%2␈↓ 
S␈ε+r
␈β
h␈↓ ↓H␈ε"product␈αλof␈α	the␈α	m␈α↓oduli.␈α∂Therefore␈α	w␈α␈e␈αλsee␈α	that␈α	the␈α	am␈α↓oun␈α␈t␈αλof␈α	time␈α	required␈α	to␈αλadd,
␈β∞∪␈↓ ↓H␈ε"subtract,␈α∩or␈α⊂m␈α␈ultiply␈ε(␈α⊃n␈ε"-digit␈α⊃n␈α␈um␈α␈bers␈α⊂using␈α⊃m␈α↓odular␈α⊃arithmetic␈α⊃is␈α⊂essen␈α␈tially
␈β∞>␈↓ ↓H␈ε"proportional␈α∩to␈ε(␈α∩n␈ε"␈α∩(n␈α↓ot␈α∩coun␈α␈ting␈α∪the␈α∩time␈α∩to␈α∩con␈α␈v␈α␈ert␈α∪in␈α∩and␈α∩out␈α∩of␈α∩m␈α↓odular
␈β∞j␈↓ ↓H␈ε"represen␈α␈tation).␈α∪This␈α
is␈α
n␈α↓o␈α
adv␈α}an␈α␈tage␈α∞at␈α
all␈α
when␈α
addition␈α
and␈α
subtraction␈α
are
␈β∂∃␈↓ ↓H␈ε"considered,␈α
but␈α
it␈α
can␈αbe␈α
a␈α
considerable␈α
adv␈α}an␈α␈tage␈α
with␈α
respect␈α
to␈α
m␈α␈ultiplication
␈β∂@␈↓ ↓H␈ε"since␈α⊂the␈α⊂con␈α␈v␈α␈en␈α␈tional␈α⊃meth␈α↓od␈α⊂of␈α⊃the␈α⊂preceding␈α⊂section␈α⊃requires␈α⊂an␈α⊂execution
␈β∂e␈↓ ∧)␈ε%2
␈β∂k␈↓ ↓H␈ε"time␈αproportional␈αto␈↓ ∧∀␈ε(n␈↓ ∧:␈ε".
␈β⊂⊗␈↓ α␈ε"Moreo␈α␈v␈α␈er,␈α
on␈α
a␈α
computer␈α
that␈α
allo␈α␈ws␈α
man␈α␈y␈α
operations␈α
to␈α
tak␈α␈e␈α
place␈αsim␈α␈ul-
␈β⊂B␈↓ ↓H␈ε"taneously,␈α
m␈α↓odular␈α
arithmetic␈α
can␈α∞be␈α
a␈α
signi|can␈α␈t␈α
adv␈α}an␈α␈tage␈α
ev␈α␈en␈α
for␈α
addition
␈β⊂m␈↓ ↓H␈ε"and␈αsubtraction;␈αthe␈αoperations␈αwith␈αrespect␈αto␈αdi{eren␈α␈t␈αm␈α↓oduli␈αcan␈αall␈αbe␈αdone
␈β⊃_␈↓ ↓H␈ε"at␈α
the␈α
same␈αtime,␈α
so␈αw␈α␈e␈α
obtain␈α
a␈αsubstan␈α␈tial␈α
increase␈αin␈α
speed.␈α∂The␈αsame␈α
kind␈α
of
␈β∪(

␈β↓U␈↓ ↓H␈ε"270␈↓ 
b␈ε"4.3.2
␈β↓\␈↓ α=␈ε∞ARITH␈α↓MET␈α↓IC
␈βα$␈↓ ↓H␈ε"decrease␈α
in␈αexecution␈α
time␈αcould␈αn␈α↓ot␈α
be␈αachiev␈α␈ed␈αby␈α
the␈αcon␈α␈v␈α␈en␈α␈tional␈α
techniques
␈βαO␈↓ ↓H␈ε"discussed␈α∞in␈α∂the␈α∂previous␈α∞section,␈α⊂since␈α∂carry␈α∞propagation␈α∂m␈α␈ust␈α∂be␈α∞considered.
␈βαz␈↓ ↓H␈ε"Perhaps␈αsome␈α
da␈α␈y␈α
highly␈↓ ∧←␈ε"parallel␈α
computers␈α
will␈αmak␈α␈e␈α
sim␈α␈ultaneous␈αoperations
␈ββ&␈↓ ↓H␈ε"comm␈α↓onplace,␈α⊂so␈α∂that␈α∂m␈α↓odular␈α∂arithmetic␈α∂will␈α∂be␈α∂of␈α∂signi|can␈α␈t␈α∂importance␈α∂in
␈ββQ␈↓ ↓H␈ε"\␈↓ ↓Z␈ε"real-time"␈αcalculations␈αwhen␈αa␈αquick␈αansw␈α␈er␈αto␈αa␈αsingle␈αproblem␈αrequiring␈αhigh
␈ββ|␈↓ ↓H␈ε"precision␈α∂is␈α∞needed.␈α∨(With␈α∂highly␈α∞parallel␈α∂computers,␈α⊂it␈α∂is␈α∂o$en␈α∂preferable␈α∞to
␈β∧'␈↓ ↓H␈ε"run␈↓ α
␈ε(k␈↓ α+␈ε/separate␈ε"␈α
programs␈αsim␈α␈ultaneously,␈α
instead␈αof␈α
running␈α
a␈ε/␈αsingle␈ε"␈α
program␈↓ _␈ε(k
␈β∧R␈↓ ↓H␈ε"times␈α	as␈α
fast,␈α
since␈α
the␈α
latter␈α	alternativ␈α␈e␈α
is␈α
m␈α↓ore␈α
complicated␈α	but␈α
does␈α
n␈α↓ot␈α	utilize
␈β∧}␈↓ ↓H␈ε"the␈α
machine␈α
an␈α␈y␈α
m␈α↓ore␈α∞e}cien␈α␈tly.␈α∪\Real-time"␈α∞calculations␈α
are␈α
exceptions␈α
that
␈β¬)␈↓ ↓H␈ε"mak␈α␈e␈αthe␈αinheren␈α␈t␈αparallelism␈αof␈αm␈α↓odular␈αarithmetic␈αm␈α↓ore␈αsigni|can␈α␈t.)
␈β¬T␈↓ α␈ε"No␈α␈w␈α
let␈α
us␈α
examine␈αthe␈α
basic␈α
fact␈α
that␈α
underlies␈α
the␈α
m␈α↓odular␈α
represen␈α␈tation
␈β¬␈␈↓ ↓H␈ε"of␈αn␈α␈um␈α␈bers:
␈βε:␈↓ ↓H␈ε2Theorem␈α∂C␈ε"␈α∂(␈ε/Chinese␈α⊂Remainder␈α∂Theorem␈ε")␈ε2.␈ε/␈α∨Let␈↓ πc␈ε(m␈↓ λ∀␈ε/,␈↓ λ.␈ε(m␈↓ λ↑␈ε/,␈↓ λy␈ε".␈αε.␈αε.␈↓ 	)␈ε/,␈↓ 	C␈ε(m␈↓ 
↓␈ε/be␈α∂positiv␈α␈e
␈βεG␈↓ λβ␈ε%1␈↓ λN␈ε%2␈↓ 	b␈ε+r
␈βεe␈↓ ↓H␈ε/in␈α␈tegers␈αthat␈αare␈αrelativ␈α␈ely␈αprime␈αin␈αpairs,␈αi.e.,
␈βπ/␈↓ ∧/␈ε"gcd␈↓ ∧e␈ε"(␈↓ ∧q␈ε(m␈↓ ¬ ␈ε",␈↓ ¬0␈ε(m␈↓ ¬b␈ε")␈α
=␈α
1␈↓ π␈ε"when␈↓ π↑␈ε(j␈↓ πy␈ε6≤␈↓ λ'␈ε(k␈↓ λ;␈ε".␈↓ α␈ε"(5)
␈βπ;␈↓ ¬⊃␈ε+j␈↓ ¬P␈ε+k
␈βπx␈↓ ↓H␈ε/Let␈ε(␈α∂m␈ε"␈α⊂=␈↓ αr␈ε(m␈↓ β"␈ε(m␈↓ βY␈ε".␈αε.␈αε.␈↓ ∧	␈ε(m␈↓ ∧8␈ε/,␈α⊃and␈α∂let␈ε(␈α⊂a␈ε/,␈↓ εα␈ε(u␈↓ ε'␈ε/,␈↓ εB␈ε(u␈↓ εh␈ε/,␈↓ πα␈ε".␈αε.␈αε.␈↓ π2␈ε/,␈↓ πM␈ε(u␈↓ λ↓␈ε/be␈α⊂in␈α␈tegers.␈α≠Then␈α⊂there␈α∂is
␈βλ∧␈↓ β⊃␈ε%1␈↓ βB␈ε%2␈↓ ∧)␈ε+r␈↓ ε↔␈ε%1␈↓ εW␈ε%2␈↓ πb␈ε+r
␈βλ#␈↓ ↓H␈ε/exactly␈αone␈αin␈α␈teger␈ε(␈αu␈ε/␈αthat␈αsatis|es␈αthe␈αconditions
␈βλm␈↓ α4␈ε(a␈ε6␈α
∀␈ε(␈α
u␈ε"␈α
<␈ε(␈α
a␈ε"␈αλ+␈ε(␈αλm␈ε",␈↓ ¬␈ε"and␈↓ ε
␈ε(u␈ε6␈α	⊃␈↓ εY␈ε(u␈↓ ππ␈ε"(modulo␈↓ λ∪␈ε(m␈↓ λB␈ε")␈↓ λZ␈ε"for␈↓ 	∩␈ε"1␈ε6␈α
∀␈↓ 	\␈ε(j␈↓ 	w␈ε6∀␈↓ 
%␈ε(r␈↓ 
6␈ε".␈↓ α␈ε"(6)
␈βλy␈↓ εn␈ε+j␈↓ λ3␈ε+j
␈β	6␈↓ ↓H␈ε/Pro␈α↓of.␈ε"␈α→If␈ε(␈αu␈ε6␈α	⊃␈↓ β2␈ε(v␈↓ βO␈ε"(modulo␈↓ ∧[␈ε(m␈↓ ¬
␈ε")␈αfor␈α1␈ε6␈α
∀␈↓ ε$␈ε(j␈↓ ε?␈ε6∀␈↓ εm␈ε(r␈↓ ε}␈ε",␈αthen␈ε(␈αu␈ε6␈αλ␈␈↓ λ.␈ε(v␈↓ λM␈ε"is␈αa␈αm␈α␈ultiple␈αof␈↓ 
F␈ε(m␈↓ ␈ε"for
␈β	B␈↓ ∧{␈ε+j␈↓ 
e␈ε+j
␈β	a␈↓ ↓H␈ε"all␈↓ ↓x␈ε(j␈↓ α	␈ε",␈α
so␈α
(5)␈αimplies␈α
that␈ε(␈α
u␈ε6␈α∧␈␈↓ ¬↓␈ε(v␈↓ ¬≡␈ε"is␈α
a␈αm␈α␈ultiple␈α
of␈ε(␈α
m␈ε"␈α
=␈↓ πh␈ε(m␈↓ λ_␈ε(m␈↓ λO␈ε".␈αε.␈αε.␈↓ λ␈␈ε(m␈↓ 	.␈ε".␈α∂This␈α
argumen␈α␈t
␈β	n␈↓ λπ␈ε%1␈↓ λ8␈ε%2␈↓ 	∨␈ε+r
␈β
␈↓ ↓H␈ε"sh␈α↓o␈α␈ws␈αthat␈αthere␈α
is␈ε/␈αat␈αm␈α↓ost␈ε"␈α
one␈αsolution␈αof␈α
(6).␈α⊃T␈α⎇o␈αcomplete␈αthe␈α
pro␈α↓of␈αw␈α␈e␈αm␈α␈ust
␈β
8␈↓ ↓H␈ε"n␈α↓o␈α␈w␈α∂sh␈α↓o␈α␈w␈α∂the␈α⊂existence␈α∂of␈ε/␈α∂at␈α⊂least␈ε"␈α∂one␈α∂solution,␈α⊂and␈α⊂this␈α∂can␈α∂be␈α⊂done␈α∂in␈α∂t␈α␈w␈α␈o
␈β
c␈↓ ↓H␈ε"simple␈αw␈α␈a␈α␈ys:
␈β≡␈↓ ↓H␈ε"METHOD␈α
1␈α	(\Nonconstructiv␈α␈e"␈α
pro␈α↓of).␈α∩As␈ε(␈α
u␈ε"␈α	runs␈α
through␈α
the␈ε(␈α
m␈ε"␈α
distinct␈α	v␈α}alues
␈βI␈↓ ↓H␈ε(a␈ε6␈α∀␈ε(␈αu␈ε"␈α<␈ε(␈αa␈ε"␈α	+␈ε(␈α	m␈ε"␈α␈,␈α∞the␈↓ ∧%␈ε(r␈↓ ∧5␈ε"-tuples␈α
(␈ε(u␈↓ ¬S␈ε"mod␈↓ ε≥␈ε(m␈↓ εM␈ε",␈↓ ε]␈ε".␈αε.␈αε.␈↓ π
␈ε",␈ε(␈αεu␈↓ π8␈ε"mod␈↓ λα␈ε(m␈↓ λ1␈ε")␈α
m␈α␈ust␈α
also␈α
run␈α
through
␈βU␈↓ ε=␈ε%1␈↓ λ"␈ε+r
␈βt␈↓ ↓H␈ε(m␈ε"␈α⊂distinct␈α⊃v␈α}alues,␈α∩since␈α⊂(6)␈α⊃has␈α⊃at␈α⊃m␈α↓ost␈α⊂one␈α⊃solution.␈α≡But␈α⊃there␈α⊃are␈α⊂exactly
␈β∨␈↓ ↓H␈ε(m␈↓ ↓x␈ε(m␈↓ α/␈ε".␈αε.␈αε.␈↓ α←␈ε(m␈↓ β≥␈ε"possible␈↓ ∧%␈ε(r␈↓ ∧6␈ε"-tuples␈α∂(␈↓ ¬;␈ε(v␈↓ ¬]␈ε",␈↓ ¬m␈ε".␈αε.␈αε.␈↓ ε≥␈ε",␈↓ ε-␈ε(v␈↓ εN␈ε")␈α∂such␈α∞that␈α∂0␈ε6␈α∂∀␈↓ λa␈ε(v␈↓ 	⊃␈ε"<␈↓ 	C␈ε(m␈↓ 	r␈ε".␈α_Therefore
␈β,␈↓ ↓g␈ε%1␈↓ α_␈ε%2␈↓ α}␈ε+r␈↓ ¬L␈ε%1␈↓ ε>␈ε+r␈↓ λs␈ε+j␈↓ 	c␈ε+j
␈βK␈↓ ↓H␈ε"each␈↓ α≥␈ε(r␈↓ α-␈ε"-tuple␈α⊂m␈α␈ust␈α∂occur␈α∂exactly␈α⊂once,␈α⊂and␈α∂there␈α⊂m␈α␈ust␈α∂be␈α∂some␈α⊂v␈α}alue␈α∂of␈ε(␈α∂u␈ε"␈α∂for
␈βv␈↓ ↓H␈ε"which␈α(␈ε(u␈↓ αV␈ε"mod␈↓ β ␈ε(m␈↓ βQ␈ε",␈↓ βa␈ε".␈αε.␈αε.␈↓ ∧⊃␈ε",␈ε(␈αεu␈↓ ∧<␈ε"mod␈↓ ¬ε␈ε(m␈↓ ¬5␈ε")␈α
=␈α
(␈↓ ε¬␈ε(u␈↓ ε*␈ε",␈↓ ε:␈ε".␈αε.␈αε.␈↓ εj␈ε",␈↓ εz␈ε(u␈↓ π∨␈ε").
␈β
α␈↓ β@␈ε%1␈↓ ¬%␈ε+r␈↓ ε~␈ε%1␈↓ π∂␈ε+r
␈β
1␈↓ ↓H␈ε"METHOD␈α∞2␈α
(\Constructiv␈α␈e"␈α∞pro␈α↓of).␈α≥W␈α⎇e␈α∞can␈α∞|nd␈α
n␈α␈um␈α␈bers␈↓ 	↓␈ε(M␈↓ 	C␈ε"for␈α
1␈ε6␈α∞∀␈↓ 
M␈ε(j␈↓ 
k␈ε6∀␈↓ ≤␈ε(r
␈β
=␈↓ 	&␈ε+j
␈β
\␈↓ ↓H␈ε"such␈αthat
␈β∞%␈↓ α0␈ε(M␈↓ αm␈ε6⊃␈ε"␈α
1␈α
(modulo␈↓ ∧C␈ε(m␈↓ ∧r␈ε")␈↓ ¬F␈ε"and␈↓ εH␈ε(M␈↓ π¬␈ε6⊃␈ε"␈α
0␈α
(modulo␈↓ λ[␈ε(m␈↓ 	
␈ε")␈↓ 	%␈ε"for␈↓ 	]␈ε(k␈↓ 	|␈ε6≤␈↓ 
*␈ε(j␈↓ 
;␈ε".␈↓ α␈ε"(7)
␈β∞2␈↓ αT␈ε+j␈↓ ∧c␈ε+j␈↓ εl␈ε+j␈↓ λ{␈ε+k
␈β∞o␈↓ ↓H␈ε"This␈α
follo␈α␈ws␈α
because␈α
(5)␈α
implies␈α
that␈↓ ε→␈ε(m␈↓ εU␈ε"and␈ε(␈α
m␈ε"/␈↓ πN␈ε(m␈↓ λ
␈ε"are␈α
relativ␈α␈ely␈α
prime,␈α
so␈α
w␈α␈e
␈β∞{␈↓ ε9␈ε+j␈↓ πn␈ε+j
␈β∂~␈↓ ↓H␈ε"ma␈α␈y␈αtak␈α␈e
␈β∂=␈↓ πβ␈ε+⎇␈ε%(␈↓ π"␈ε+m␈↓ πJ␈ε%)
␈β∂E␈↓ ¬≡␈ε(M␈↓ ¬\␈ε"=␈α
(␈ε(m␈ε"/␈↓ εH␈ε(m␈↓ εw␈ε")␈↓ α␈ε"(8)
␈β∂G␈↓ π=␈ε-j
␈β∂Q␈↓ ¬C␈ε+j␈↓ εg␈ε+j
␈β⊂∧␈↓ ↓H␈ε"by␈↓ ↓{␈ε"Euler's␈αtheorem␈α(exercise␈α1.2.4↑28).␈α⊂No␈α␈w␈αthe␈αn␈α␈um␈α␈ber
␈β⊂.␈↓ ∧%␈ε↓␈␈↓ 	U␈ε↓↓
␈β⊂M␈↓ β⊃␈ε(u␈ε"␈α
=␈ε(␈α
a␈ε"␈αλ+␈↓ ∧3␈ε"(␈↓ ∧?␈ε(u␈↓ ∧e␈ε(M␈↓ ¬"␈ε"+␈↓ ¬N␈ε(u␈↓ ¬s␈ε(M␈↓ ε0␈ε"+␈↓ ε\␈ε6↓␈αε↓␈αε↓␈↓ π∞␈ε"+␈↓ π:␈ε(u␈↓ π↑␈ε(M␈↓ λ~␈ε6␈␈ε(␈αλa␈ε")␈↓ λk␈ε"mod␈↓ 	5␈ε(m␈↓ α␈ε"(9)
␈β⊂Y␈↓ ∧T␈ε%1␈↓ ¬	␈ε%1␈↓ ¬b␈ε%2␈↓ ε↔␈ε%2␈↓ πO␈ε+r␈↓ λβ␈ε+r
␈β⊃⊗␈↓ ↓H␈ε"satis|es␈αall␈αthe␈αconditions␈αof␈α(6).
␈β⊃∨␈↓ ¬m␈∧⊃∨¬m≠∂
␈β∪(

␈β↓U␈↓ ↓H␈ε"4.3.2␈↓ 
v␈ε"271
␈β↓\␈↓ π:␈ε∞MOD␈α↓ULAR␈α
ARIT␈α↓HME␈α↓TIC
␈βα$␈↓ α␈ε"A␈α	v␈α␈ery␈α	special␈α	case␈α
of␈α	this␈α	theorem␈α	w␈α␈as␈α	stated␈α	by␈α	the␈α	Chinese␈α	mathematician
␈βαO␈↓ ↓H␈ε"Sun␈α∞Ts␈↓ α:␈ε"u␈↓ α;␈ε"⊃␈↓ αN␈ε",␈α∂wh␈α↓o␈α∂ga␈α␈v␈α␈e␈α∂a␈α∞rule␈α∂called␈α∞t␈↓ ¬l␈ε"∞␈↓ ¬l␈ε"a␈↓ ¬}␈ε"i-y␈α␈en␈α∂(\great␈α∂generalization").␈α↔The␈α∂date␈α∞of
␈βαz␈↓ ↓H␈ε"his␈αwriting␈αis␈αv␈α␈ery␈αuncertain;␈αit␈αis␈αth␈α↓ough␈α␈t␈αto␈αbe␈αbet␈α␈w␈α␈een␈α280␈αand␈α473␈↓ 
n␈ε"[See
␈βα␈␈↓ 
∪␈ε.A.D␈α↓.
␈ββ&␈↓ ↓H␈ε"Joseph␈↓ αB␈ε"Needham,␈ε/␈α∩Science␈α⊃and␈α⊂Civilization␈α⊃in␈α⊃China␈ε2␈α⊂3␈ε"␈α⊃(Cam␈α␈bridge␈α⊂Univ␈α␈ersit␈α␈y
␈ββQ␈↓ ↓H␈ε"Press,␈α⊃1959),␈α∩33↑34,␈α⊃119↑120,␈α∩for␈α⊂an␈α⊂in␈α␈teresting␈α⊃discussion.]␈α!Theorem␈α⊂C␈α⊂w␈α␈as
␈ββ|␈↓ ↓H␈ε"apparen␈α␈tly␈α|rst␈α
stated␈α
and␈α
pro␈α␈v␈α␈ed␈α
in␈αits␈α
proper␈α
generalit␈α␈y␈α
by␈↓ 	≤␈ε"Chhin␈αChiu-Shao
␈β∧'␈↓ ↓H␈ε"in␈αhis␈ε/␈αSh␈α␈u␈αSh␈α␈u␈αChiu␈αChang␈ε"␈α(1247).␈α⊂Numerous␈αearly␈αcon␈α␈tributions␈αto␈αthis␈αtheory
␈β∧R␈↓ ↓H␈ε"ha␈α␈v␈α␈e␈α	been␈α
summarized␈α
by␈α
L.␈α
E.␈↓ ¬9␈ε"Dickson␈α
in␈α	his␈ε/␈α
History␈α
of␈α
the␈α
Theory␈α
of␈α	Num␈α␈bers
␈β∧}␈↓ ↓H␈ε22␈ε"␈α(New␈αY␈α⎇ork:␈αChelsea,␈α1952),␈α57↑64.
␈β¬)␈↓ α␈ε"As␈α⊂a␈α⊂consequence␈α⊂of␈α⊂Theorem␈α⊂C,␈α⊂w␈α␈e␈α⊂ma␈α␈y␈α⊂use␈α⊂m␈α↓odular␈α∂represen␈α␈tation␈α⊂for
␈β¬T␈↓ ↓H␈ε"n␈α␈um␈α␈bers␈α
in␈α
an␈α␈y␈αconsecutiv␈α␈e␈α
in␈α␈terv␈α}al␈αof␈ε(␈α
m␈ε"␈α
=␈↓ ε}␈ε(m␈↓ π.␈ε(m␈↓ πe␈ε".␈αε.␈αε.␈↓ λ∃␈ε(m␈↓ λO␈ε"in␈α␈tegers.␈α∂F␈α⎇or␈α
example,
␈β¬`␈↓ π≡␈ε%1␈↓ πN␈ε%2␈↓ λ5␈ε+r
␈β¬␈␈↓ ↓H␈ε"w␈α␈e␈α⊂could␈α⊂tak␈α␈e␈ε(␈α⊃a␈ε"␈α⊃=␈α∩0␈α⊂in␈α⊂(6),␈α∩and␈α⊂w␈α␈ork␈α⊃only␈α⊂with␈α⊂n␈α↓onnegativ␈α␈e␈α⊃in␈α␈tegers␈ε(␈α⊂u␈ε"␈α⊂less
␈βε*␈↓ ↓H␈ε"than␈ε(␈α
m␈ε"␈α␈.␈α∪On␈α
the␈α
other␈α
hand,␈α
when␈α
addition␈α
and␈α
subtraction␈α
are␈α
being␈α
done,␈α
as
␈βεV␈↓ ↓H␈ε"w␈α␈ell␈α	as␈α	m␈α␈ultiplication,␈α
it␈α	is␈α
usually␈α	m␈α↓ost␈α	con␈α␈v␈α␈enien␈α␈t␈α
to␈α	assume␈α	that␈α
all␈α	the␈α	m␈α↓oduli
␈βπ↓␈↓ ↓H␈ε(m␈↓ ↓x␈ε",␈↓ α␈ε(m␈↓ α=␈ε",␈↓ αQ␈ε".␈αε.␈αε.␈↓ β↓␈ε",␈↓ β∃␈ε(m␈↓ βN␈ε"are␈α
odd␈α
n␈α␈um␈α␈bers,␈α
so␈α
that␈ε(␈α
m␈ε"␈α
=␈↓ π2␈ε(m␈↓ πb␈ε(m␈↓ λ→␈ε".␈αε.␈αε.␈↓ λI␈ε(m␈↓ 	α␈ε"is␈α
odd,␈α
and␈α
to␈α	w␈α␈ork
␈βπ
␈↓ ↓g␈ε%1␈↓ α,␈ε%2␈↓ β5␈ε+r␈↓ πQ␈ε%1␈↓ λα␈ε%2␈↓ λi␈ε+r
␈βπ,␈↓ ↓H␈ε"with␈αin␈α␈tegers␈αin␈αthe␈αrange
␈βπG␈↓ ¬a␈ε(m␈↓ π
␈ε(m
␈βπ←␈↓ ¬9␈ε6␈␈↓ ε∂␈ε"<␈ε(␈α
u␈ε"␈α	<␈↓ π1␈ε",␈↓ 
p␈ε"(10)
␈βπs␈↓ ¬a␈∧πs¬aα ␈↓ π
␈∧πsπ
α 
␈βπy␈↓ ¬h␈ε"2␈↓ π∀␈ε"2
␈βλ,␈↓ ↓H␈ε"which␈αis␈αcompletely␈αsymmetrical␈αabout␈αzero.
␈βλW␈↓ α␈ε"T␈α⎇o␈α	perform␈αλthe␈α	basic␈αλoperations␈α	listed␈α	in␈αλ(2),␈α	(3),␈α
and␈αλ(4),␈α
w␈α␈e␈αλneed␈α	to␈αλcompute
␈β	β␈↓ ↓H␈ε"(␈↓ ↓T␈ε(u␈↓ α␈ε"+␈↓ α-␈ε(v␈↓ αM␈ε")␈↓ α←␈ε"mod␈↓ β)␈ε(m␈↓ βX␈ε",␈α
(␈↓ β{␈ε(u␈↓ ∧(␈ε6␈␈↓ ∧T␈ε(v␈↓ ∧u␈ε")␈↓ ¬π␈ε"mod␈↓ ¬Q␈ε(m␈↓ ε␈ε",␈α
and␈↓ ε↑␈ε(u␈↓ πα␈ε(v␈↓ π)␈ε"mod␈↓ πs␈ε(m␈↓ λ"␈ε",␈α
when␈α0␈ε6␈α∀␈↓ 	d␈ε(u␈↓ 
λ␈ε",␈↓ 
_␈ε(v␈↓ 
D␈ε"<␈↓ 
s␈ε(m␈↓ "␈ε".
␈β	∂␈↓ ↓h␈ε+j␈↓ α>␈ε+j␈↓ βI␈ε+j␈↓ ∧⊂␈ε+j␈↓ ∧f␈ε+j␈↓ ¬q␈ε+j␈↓ εs␈ε+j␈↓ π∪␈ε+j␈↓ λ∩␈ε+j␈↓ 	y␈ε+j␈↓ 
*␈ε+j␈↓ ∪␈ε+j
␈β	.␈↓ ↓H␈ε"If␈↓ ↓o␈ε(m␈↓ α-␈ε"is␈α∂a␈α∂single-precision␈α∂n␈α␈um␈α␈ber,␈α⊂it␈α∂is␈α∂m␈α↓ost␈α∂con␈α␈v␈α␈enien␈α␈t␈α∂to␈α∂form␈↓ 	i␈ε(u␈↓ 

␈ε(v␈↓ 
3␈ε"mod␈↓ 
⎇␈ε(m
␈β	:␈↓ α∞␈ε+j␈↓ 	}␈ε+j␈↓ 
≡␈ε+j␈↓ ≥␈ε+j
␈β	Y␈↓ ↓H␈ε"by␈α∩doing␈α∪a␈α∪m␈α␈ultiplication␈α∪and␈α∪then␈α∪a␈α∩division␈α∪operation.␈α%F␈α⎇or␈α∪addition␈α∩and
␈β
∧␈↓ ↓H␈ε"subtraction,␈α∞the␈α∞situation␈α∞is␈α∞a␈↓ ¬0␈ε"little␈α∞simpler,␈α∂since␈α∞n␈α↓o␈α
division␈α∞is␈α∞necessary;␈α∂the
␈β
/␈↓ ↓H␈ε"follo␈α␈wing␈αform␈α␈ulas␈αma␈α␈y␈αcon␈α␈v␈α␈enien␈α␈tly␈αbe␈αused:
␈β
y␈↓ ¬,␈ε(u␈↓ ¬X␈ε"+␈↓ ε∧␈ε(v␈↓ ε%␈ε",␈↓ πZ␈ε"if␈↓ π|␈ε(u␈↓ λ(␈ε"+␈↓ λT␈ε(v␈↓ λ}␈ε"<␈↓ 	,␈ε(m␈↓ 	[␈ε";
␈β
⎇␈↓ ¬⊗␈ε↓~
␈βε␈↓ ¬A␈ε+j␈↓ ε⊗␈ε+j␈↓ λ⊃␈ε+j␈↓ λe␈ε+j␈↓ 	L␈ε+j
␈β⊗␈↓ αO␈ε"(␈↓ α[␈ε(u␈↓ βπ␈ε"+␈↓ β3␈ε(v␈↓ βS␈ε")␈↓ βe␈ε"mod␈↓ ∧/␈ε(m␈↓ ∧h␈ε"=␈↓ 
p␈ε"(11)
␈β"␈↓ αo␈ε+j␈↓ βD␈ε+j␈↓ ∧O␈ε+j
␈β/␈↓ ¬,␈ε(u␈↓ ¬X␈ε"+␈↓ ε∧␈ε(v␈↓ ε-␈ε6␈␈↓ εY␈ε(m␈↓ πλ␈ε",␈↓ πZ␈ε"if␈↓ π|␈ε(u␈↓ λ(␈ε"+␈↓ λT␈ε(v␈↓ λ}␈ε6∃␈↓ 	,␈ε(m␈↓ 	[␈ε".
␈β<␈↓ ¬A␈ε+j␈↓ ε⊗␈ε+j␈↓ εy␈ε+j␈↓ λ⊃␈ε+j␈↓ λe␈ε+j␈↓ 	L␈ε+j
␈βl␈↓ ¬,␈ε(u␈↓ ¬X␈ε6␈␈↓ ε∧␈ε(v␈↓ ε%␈ε",␈↓ πZ␈ε"if␈↓ π|␈ε(u␈↓ λ(␈ε6␈␈↓ λT␈ε(v␈↓ λ}␈ε6∃␈ε"␈α
0;
␈βo␈↓ ¬⊗␈ε↓~
␈βx␈↓ ¬A␈ε+j␈↓ ε⊗␈ε+j␈↓ λ⊃␈ε+j␈↓ λe␈ε+j
␈βλ␈↓ αO␈ε"(␈↓ α[␈ε(u␈↓ βπ␈ε6␈␈↓ β3␈ε(v␈↓ βS␈ε")␈↓ βe␈ε"mod␈↓ ∧/␈ε(m␈↓ ∧h␈ε"=␈↓ 
p␈ε"(12)
␈β∃␈↓ αo␈ε+j␈↓ βD␈ε+j␈↓ ∧O␈ε+j
␈β"␈↓ ¬,␈ε(u␈↓ ¬X␈ε6␈␈↓ ε∧␈ε(v␈↓ ε-␈ε"+␈↓ εY␈ε(m␈↓ πλ␈ε",␈↓ πZ␈ε"if␈↓ π|␈ε(u␈↓ λ(␈ε6␈␈↓ λT␈ε(v␈↓ λ}␈ε"<␈α
0.
␈β.␈↓ ¬A␈ε+j␈↓ ε⊗␈ε+j␈↓ εy␈ε+j␈↓ λ⊃␈ε+j␈↓ λe␈ε+j
␈βq␈↓ ↓H␈ε"(Cf.␈αSection␈α3.2.1.1.)␈α→In␈αthis␈αcase,␈αsince␈αw␈α␈e␈αw␈α␈an␈α␈t␈ε(␈αm␈ε"␈αto␈αbe␈αas␈αlarge␈αas␈αpossible,␈αit
␈β
≤␈↓ ↓H␈ε"is␈α
easiest␈α
to␈α
let␈↓ βB␈ε(m␈↓ ∧␈ε"be␈α
the␈α
largest␈α∞odd␈α
n␈α␈um␈α␈ber␈α
that␈α
|ts␈α
in␈α∞a␈α
computer␈α
w␈α␈ord,␈α
to
␈β
(␈↓ βb␈ε%1
␈β
G␈↓ ↓H␈ε"let␈↓ ↓}␈ε(m␈↓ α<␈ε"be␈α∂the␈α∞largest␈α∞odd␈α∞n␈α␈um␈α␈ber␈α∞<␈↓ ε#␈ε(m␈↓ εa␈ε"that␈α∂is␈α∞relativ␈α␈ely␈α∞prime␈α∞to␈↓ 

␈ε(m␈↓ 
>␈ε",␈α∞to␈α∞let
␈β
S␈↓ α≡␈ε%2␈↓ εB␈ε%1␈↓ 
-␈ε%1
␈β
r␈↓ ↓H␈ε(m␈↓ απ␈ε"be␈α∞the␈α∂largest␈α∞odd␈α∂n␈α␈um␈α␈ber␈α∂<␈↓ ¬p␈ε(m␈↓ ε/␈ε"that␈α∂is␈α∞relativ␈α␈ely␈α∂prime␈α∞to␈α∂both␈↓ 
3␈ε(m␈↓ 
r␈ε"and
␈β
␈␈↓ ↓g␈ε%3␈↓ ε⊂␈ε%2␈↓ 
S␈ε%1
␈β∞≥␈↓ ↓H␈ε(m␈↓ ↓x␈ε",␈α
and␈α
so␈α
on␈α
un␈α␈til␈α
en␈α↓ough␈↓ ¬
␈ε(m␈↓ ¬9␈ε"'s␈α
ha␈α␈v␈α␈e␈α
been␈α
found␈α
to␈α
giv␈α␈e␈α
the␈α
desired␈α
range␈ε(␈α
m␈ε"␈α␈.
␈β∞*␈↓ ↓g␈ε%2␈↓ ¬*␈ε+j
␈β∞I␈↓ ↓H␈ε"E}cien␈α␈t␈αw␈α␈a␈α␈ys␈αto␈αdetermine␈αwhether␈αor␈αn␈α↓ot␈αt␈α␈w␈α␈o␈αin␈α␈tegers␈αare␈αrelativ␈α␈ely␈αprime␈αare
␈β∞t␈↓ ↓H␈ε"discussed␈αin␈αSection␈α4.5.2.
␈β∂∨␈↓ α␈ε"As␈α
a␈α	simple␈α
example,␈α
suppose␈α	that␈α	w␈α␈e␈α
ha␈α␈v␈α␈e␈α	a␈α
decimal␈α	computer␈α
wh␈α↓ose␈α	w␈α␈ords
␈β∂J␈↓ ↓H␈ε"h␈α↓old␈αonly␈αt␈α␈w␈α␈o␈αdigits,␈αso␈αthat␈αthe␈αw␈α␈ord␈αsize␈αis␈α100.␈α∂Then␈αthe␈αprocedure␈αdescribed
␈β∂u␈↓ ↓H␈ε"in␈αthe␈αprevious␈αparagraph␈αw␈α␈ould␈αgiv␈α␈e
␈β⊂G␈↓ ↓H␈ε(m␈↓ αα␈ε"=␈α
99,␈↓ βλ␈ε(m␈↓ βC␈ε"=␈α
97,␈↓ ∧I␈ε(m␈↓ ¬β␈ε"=␈α
95,␈↓ ε	␈ε(m␈↓ εD␈ε"=␈α
91,␈↓ πJ␈ε(m␈↓ λ∧␈ε"=␈α
89,␈↓ 	
␈ε(m␈↓ 	E␈ε"=␈α
83,␈↓ 
p␈ε"(13)
␈β⊂S␈↓ ↓g␈ε%1␈↓ β(␈ε%2␈↓ ∧h␈ε%3␈↓ ε)␈ε%4␈↓ πj␈ε%5␈↓ 	*␈ε%6
␈β⊃_␈↓ ↓H␈ε"and␈αso␈αon.
␈β∪(

␈β↓U␈↓ ↓H␈ε"272␈↓ 
b␈ε"4.3.2
␈β↓\␈↓ α=␈ε∞ARITH␈α↓MET␈α↓IC
␈βα!␈↓ α␈ε"On␈α	binary␈α	computers␈α	it␈α	is␈αλsometimes␈α	desirable␈α	to␈α	ch␈α↓o␈α↓ose␈α	the␈↓ 	2␈ε(m␈↓ 	j␈ε"in␈α	a␈αλdi{eren␈α␈t
␈βα-␈↓ 	R␈ε+j
␈βαL␈↓ ↓H␈ε"w␈α␈a␈α␈y,␈αby␈αselecting
␈βαu␈↓ εA␈ε+e
␈βα⎇␈↓ ¬H␈ε(m␈↓ ε↓␈ε"=␈↓ ε/␈ε"2␈↓ εd␈ε6␈␈ε"␈αλ1.␈↓ 
p␈ε"(14)
␈βα}␈↓ εN␈ε-j
␈ββ	␈↓ ¬g␈ε+j
␈ββF␈↓ ↓H␈ε"In␈α∞other␈α∂w␈α␈ords,␈α∂each␈α∞m␈α↓odulus␈α∂is␈α∞one␈α∂less␈α∞than␈α∂a␈α∞po␈α␈w␈α␈er␈α∂of␈α∞2.␈α_Such␈α∞a␈α∂ch␈α↓oice␈α∞of
␈ββq␈↓ ↓H␈ε(m␈↓ αβ␈ε"o$en␈α
mak␈α␈es␈α
the␈αbasic␈α
arithmetic␈α
operations␈αsimpler,␈α
because␈α
it␈α
is␈αrelativ␈α␈ely
␈ββ}␈↓ ↓g␈ε+j
␈β∧↔␈↓ ∧>␈ε+e
␈β∧≥␈↓ ↓H␈ε"easy␈α∂to␈α⊂w␈α␈ork␈α⊂m␈α↓odulo␈↓ ∧,␈ε"2␈↓ ∧d␈ε6␈␈ε"␈α1,␈α⊂as␈α⊂in␈↓ ε≥␈ε"ones'␈α⊂complemen␈α␈t␈α∂arithmetic.␈α≤When␈α∂the
␈β∧ ␈↓ ∧K␈ε-j
␈β∧H␈↓ ↓H␈ε"m␈α↓oduli␈αare␈αch␈α↓osen␈αaccording␈αto␈αthis␈αstrategy,␈αit␈αis␈αhelpful␈αto␈αrelax␈αthe␈αcondition
␈β∧s␈↓ ↓H␈ε"0␈ε6␈α
∀␈↓ α∩␈ε(u␈↓ α@␈ε"<␈↓ αn␈ε(m␈↓ β)␈ε"sligh␈α␈tly,␈αso␈αthat␈αw␈α␈e␈αrequire␈αonly
␈β∧␈␈↓ α&␈ε+j␈↓ β
␈ε+j
␈β¬G␈↓ ¬∀␈ε+e␈↓ λ ␈ε+e
␈β¬O␈↓ β\␈ε"0␈ε6␈α
∀␈↓ ∧&␈ε(u␈↓ ∧T␈ε"<␈↓ ¬α␈ε"2␈↓ ¬0␈ε",␈↓ ελ␈ε(u␈↓ ε6␈ε6⊃␈ε(␈α
u␈ε"␈α	(modulo␈↓ λ∞␈ε"2␈↓ λD␈ε6␈␈ε"␈αλ1).␈↓ 
p␈ε"(15)
␈β¬P␈↓ ¬!␈ε-j␈↓ λ.␈ε-j
␈β¬[␈↓ ∧;␈ε+j␈↓ ε≤␈ε+j
␈βε$␈↓ ¬?␈ε+e
␈βε*␈↓ ↓H␈ε"Th␈α␈us,␈α⊂the␈α⊂v␈α}alue␈↓ βS␈ε(u␈↓ ∧π␈ε"=␈↓ ∧;␈ε(m␈↓ ∧z␈ε"=␈↓ ¬-␈ε"2␈↓ ¬e␈ε6␈␈ε"␈α1␈α∂is␈α⊂allo␈α␈w␈α␈ed␈α∂as␈α⊂an␈α∂optional␈α⊂alternativ␈α␈e␈α∂to
␈βε.␈↓ ¬M␈ε-j
␈βε7␈↓ βh␈ε+j␈↓ ∧Z␈ε+j
␈βεV␈↓ ↓H␈ε(u␈↓ ↓y␈ε"=␈α
0,␈α∞since␈α∞this␈α
does␈α∞n␈α↓ot␈α∞a{ect␈α∞the␈α
v␈α}alidit␈α␈y␈α∞of␈α∞Theorem␈α∞C␈↓ 	∞␈ε",␈α∞and␈α∞it␈α∞means␈α
w␈α␈e
␈βεb␈↓ ↓\␈ε+j
␈βπ↓␈↓ ↓H␈ε"are␈α⊂allo␈α␈wing␈↓ β_␈ε(u␈↓ βL␈ε"to␈α⊂be␈α⊂an␈α␈y␈↓ ∧x␈ε(e␈↓ ¬≠␈ε"-bit␈α⊂binary␈α⊂n␈α␈um␈α␈ber.␈α≤Under␈α⊂this␈α⊂assumption,␈α⊂the
␈βπ
␈↓ β-␈ε+j␈↓ ¬π␈ε+j
␈βπ,␈↓ ↓H␈ε"operations␈αof␈αaddition␈αand␈αm␈α␈ultiplication␈αm␈α↓odulo␈↓ π\␈ε(m␈↓ λ↔␈ε"become␈αthe␈αfollo␈α␈wing:
␈βπ8␈↓ π{␈ε+j
␈βπ⎇␈↓ 	>␈ε+e
␈βλβ␈↓ ∧↔␈ε(u␈↓ ∧C␈ε"+␈↓ ∧o␈ε(v␈↓ ¬⊂␈ε",␈↓ πY␈ε"if␈↓ π{␈ε(u␈↓ λ'␈ε"+␈↓ λS␈ε(v␈↓ λ}␈ε"<␈↓ 	,␈ε"2␈↓ 	Z␈ε";
␈βλπ␈↓ 	K␈ε-j
␈βλλ␈↓ ∧↓␈ε↓~
␈βλ⊂␈↓ ∧,␈ε+j␈↓ ¬␈ε+j␈↓ λ⊂␈ε+j␈↓ λe␈ε+j
␈βλ≠␈↓ ∧↔␈ε↓␈␈↓ ε3␈ε↓↓
␈βλ!␈↓ αP␈ε(u␈↓ α|␈ε6λ␈↓ β(␈ε(v␈↓ βS␈ε"=␈↓ 
p␈ε"(16)
␈βλ-␈↓ αe␈ε+j␈↓ β:␈ε+j
␈βλ3␈↓ ε_␈ε+e␈↓ 	>␈ε+e
␈βλ9␈↓ ∧%␈ε"(␈↓ ∧1␈ε(u␈↓ ∧]␈ε"+␈↓ ¬	␈ε(v␈↓ ¬*␈ε")␈↓ ¬<␈ε"mod␈↓ εε␈ε"2␈↓ εI␈ε"+␈αλ1,␈↓ πY␈ε"if␈↓ π{␈ε(u␈↓ λ'␈ε"+␈↓ λS␈ε(v␈↓ λ}␈ε6∃␈↓ 	,␈ε"2␈↓ 	Z␈ε".
␈βλ=␈↓ ε%␈ε-j␈↓ 	K␈ε-j
␈βλF␈↓ ∧F␈ε+j␈↓ ¬~␈ε+j␈↓ λ⊂␈ε+j␈↓ λe␈ε+j
␈βλy␈↓ ¬4␈ε+e␈↓ π~␈ε+e
␈β	↓␈↓ αP␈ε(u␈↓ α|␈ε6␈
␈↓ β(␈ε(v␈↓ βS␈ε"=␈α
(␈↓ ∧
␈ε(u␈↓ ∧1␈ε(v␈↓ ∧X␈ε"mod␈↓ ¬"␈ε"2␈↓ ¬O␈ε")␈ε6␈α∩λ␈α∩b␈↓ ε1␈ε(u␈↓ εU␈ε(v␈↓ εv␈ε"/␈↓ πλ␈ε"2␈↓ π6␈ε6c␈ε".␈↓ 
p␈ε"(17)
␈β	β␈↓ ¬A␈ε-j␈↓ π'␈ε-j
␈β	∞␈↓ αe␈ε+j␈↓ β:␈ε+j␈↓ ∧"␈ε+j␈↓ ∧B␈ε+j␈↓ εF␈ε+j␈↓ εg␈ε+j
␈β	>␈↓ ↓H␈ε↓␈
␈β	]␈↓ ↓V␈ε"Here␈ε6␈α∞λ␈ε"␈α∞and␈ε6␈α∂␈
␈ε"␈α∞refer␈α∞to␈α∂the␈α∞operations␈α∂done␈α∞on␈α∞the␈α∂individual␈α∞componen␈α␈ts␈α∞of
␈β
λ␈↓ ↓H␈ε"(␈↓ ↓T␈ε(u␈↓ ↓y␈ε",␈↓ α	␈ε".␈αε.␈αε.␈↓ α9␈ε",␈↓ αI␈ε(u␈↓ αm␈ε")␈α
and␈α(␈↓ βX␈ε(v␈↓ βz␈ε",␈↓ ∧
␈ε".␈αε.␈αε.␈↓ ∧:␈ε",␈↓ ∧J␈ε(v␈↓ ∧k␈ε")␈αwhen␈α
adding␈αor␈αm␈α␈ultiplying,␈α
respectiv␈α␈ely,␈αusing␈αthe
␈β
∃␈↓ ↓h␈ε%1␈↓ α↑␈ε+r␈↓ βC␈ε↓↓␈↓ βi␈ε%1␈↓ ∧\␈ε+r
␈β
3␈↓ ↓H␈ε"con␈α␈v␈α␈en␈α␈tion␈α
(15).␈↓ β↑␈ε"Equation␈α∞(12)␈α
ma␈α␈y␈α∞be␈α
used␈α
for␈α∞subtraction.␈α∀These␈α
operations
␈β
←␈↓ ↓H␈ε"can␈α∞be␈α∞performed␈α∞e}cien␈α␈tly␈α∞ev␈α␈en␈α∞when␈↓ εD␈ε(m␈↓ π↓␈ε"is␈α∞larger␈α∞than␈α∞the␈α∞computer's␈α∞w␈α␈ord
␈β
k␈↓ εd␈ε+j
␈β
␈↓ ↓H␈ε"size,␈α
since␈αit␈α
is␈α
a␈α
simple␈αmatter␈α
to␈α
compute␈α
the␈αremainder␈α
of␈α
a␈α
positiv␈α␈e␈αn␈α␈um␈α␈ber
␈β5␈↓ ↓H␈ε"m␈α↓odulo␈α∞a␈α∞po␈α␈w␈α␈er␈α∞of␈α∞2,␈α∞or␈α∂to␈α∞divide␈α∞a␈α∞n␈α␈um␈α␈ber␈α∞by␈α∞a␈α∞po␈α␈w␈α␈er␈α∞of␈α∞2.␈α⊗In␈α∞(17)␈α∞w␈α␈e␈α∞ha␈α␈v␈α␈e
␈β`␈↓ ↓H␈ε"the␈αsum␈αof␈αthe␈α\upper␈αhalf"␈αand␈αthe␈α\lo␈α␈w␈α␈er␈αhalf"␈αof␈αthe␈αproduct,␈αas␈αdiscussed␈αin
␈β␈↓ ↓H␈ε"exercise␈α3.2.1.1↑8.
␈β2␈↓ ∧q␈ε+e
␈β8␈↓ α␈ε"If␈α
m␈α↓oduli␈αof␈α
the␈αform␈↓ ∧←␈ε"2␈↓ ¬⊃␈ε6␈␈ε"␈α¬1␈αare␈α
to␈α
be␈αused,␈αw␈α␈e␈α
m␈α␈ust␈α
kn␈α↓o␈α␈w␈αunder␈α
what␈α
con-
␈β<␈↓ ∧}␈ε-j
␈β]␈↓ ∧␈ε+e␈↓ λ␈␈ε+f
␈βc␈↓ ↓H␈ε"ditions␈α
the␈α
n␈α␈um␈α␈ber␈↓ βy␈ε"2␈↓ ∧≡␈ε6␈␈ε"␈α¬1␈α
is␈αrelativ␈α␈ely␈α
prime␈αto␈α
the␈α
n␈α␈um␈α␈ber␈↓ λm␈ε"2␈↓ 	⊗␈ε6␈␈ε"␈α¬1.␈α∂F␈α⎇ortunately,
␈β
∂␈↓ ↓H␈ε"there␈αis␈αa␈αv␈α␈ery␈αsimple␈αrule,
␈β
b␈↓ ∧t␈ε+e␈↓ ¬k␈ε+f␈↓ π→␈ε%gcd␈↓ πG␈ε%(␈ε+e␈ε%,␈↓ πg␈ε+f␈↓ πx␈ε%)
␈β
j␈↓ ∧ ␈ε"gcd␈↓ ∧V␈ε"(␈↓ ∧b␈ε"2␈↓ ¬␈ε6␈␈ε"␈αλ1,␈↓ ¬Y␈ε"2␈↓ ε¬␈ε6␈␈ε"␈αλ1)␈α
=␈↓ ππ␈ε"2␈↓ λ␈ε6␈␈ε"␈αλ1,␈↓ 
p␈ε"(18)
␈β∞@␈↓ ¬>␈ε+e␈↓ εm␈ε+f
␈β∞F␈↓ ↓H␈ε"which␈α
states␈αin␈α
particular␈α
that␈↓ ¬,␈ε"2␈↓ ¬R␈ε6␈␈ε"␈α∧1␈ε/␈αand␈↓ ε[␈ε"2␈↓ π¬␈ε6␈␈ε"␈α¬1␈ε/␈α
are␈αrelativ␈α␈ely␈α
prime␈αif␈α
and␈α
only
␈β∞q␈↓ ↓H␈ε/if␈ε(␈α∞e␈ε/␈α∂and␈↓ αS␈ε(f␈↓ αw␈ε/are␈α∞relativ␈α␈ely␈α∂prime␈ε".␈α_Equation␈α∞(18)␈α∂follo␈α␈ws␈α∞from␈α∂Euclid's␈α∞algorithm
␈β∂≤␈↓ ↓H␈ε"and␈αthe␈αiden␈α␈tit␈α␈y
␈β∂E␈↓ ∧1␈ε+e␈↓ ε␈ε+f␈↓ π/␈ε+e␈↓ πA␈ε%m␈α␈o␈α↓d␈↓ π}␈ε+f
␈β∂M␈↓ ∧∪␈ε"(␈↓ ∧∨␈ε"2␈↓ ∧H␈ε6␈␈ε"␈αλ1)␈↓ ¬_␈ε"mod␈↓ ¬b␈ε"(␈↓ ¬n␈ε"2␈↓ ε≠␈ε6␈␈ε"␈αλ1)␈α
=␈↓ π≥␈ε"2␈↓ λ→␈ε6␈␈ε"␈αλ1.␈↓ 
p␈ε"(19)
␈β⊂⊂␈↓ λ←␈ε%35␈↓ 
H␈ε%34
␈β⊂⊗␈↓ ↓H␈ε"(See␈α	exercise␈α	6.)␈α∂Th␈α␈us␈α	w␈α␈e␈α	could␈α
ch␈α↓o␈α↓ose␈α	for␈α	example␈↓ πd␈ε(m␈↓ λ∨␈ε"=␈↓ λM␈ε"2␈↓ 	↓␈ε6␈␈ε"␈αα1,␈↓ 	M␈ε(m␈↓ 
λ␈ε"=␈↓ 
6␈ε"2␈↓ 
j␈ε6␈␈ε"␈αα1,
␈β⊂#␈↓ λ∧␈ε%1␈↓ 	m␈ε%2
␈β⊂<␈↓ αC␈ε%33␈↓ ∧<␈ε%31␈↓ ε4␈ε%29
␈β⊂B␈↓ ↓H␈ε(m␈↓ αβ␈ε"=␈↓ α1␈ε"2␈↓ αk␈ε6␈␈ε"␈α	1,␈↓ β@␈ε(m␈↓ β{␈ε"=␈↓ ∧*␈ε"2␈↓ ∧d␈ε6␈␈ε"␈αλ1,␈↓ ¬8␈ε(m␈↓ ¬s␈ε"=␈↓ ε"␈ε"2␈↓ ε\␈ε6␈␈ε"␈αλ1,␈α
if␈αw␈α␈e␈αhad␈α
a␈αcomputer␈αwith␈αw␈α␈ord
␈β⊂N␈↓ ↓g␈ε%3␈↓ β`␈ε%4␈↓ ¬X␈ε%5
␈β⊂g␈↓ α≡␈ε%35
␈β⊂m␈↓ ↓H␈ε"size␈↓ α␈ε"2␈↓ α>␈ε";␈α
this␈αw␈α␈ould␈α
permit␈α
e}cien␈α␈t␈αaddition,␈α
subtraction,␈αand␈α
m␈α␈ultiplication␈αof
␈β⊃∩␈↓ π!␈ε%1␈α↓61
␈β⊃_␈↓ ↓H␈ε"in␈α␈tegers␈αin␈αa␈αrange␈αof␈αsize␈↓ ∧e␈ε(m␈↓ ¬∃␈ε(m␈↓ ¬F␈ε(m␈↓ ¬v␈ε(m␈↓ ε'␈ε(m␈↓ εa␈ε">␈↓ π∂␈ε"2␈↓ πQ␈ε".
␈β⊃$␈↓ ¬∧␈ε%1␈↓ ¬5␈ε%2␈↓ ¬f␈ε%3␈↓ ε⊗␈ε%4␈↓ εG␈ε%5
␈β∪(

␈β↓U␈↓ ↓H␈ε"4.3.2␈↓ 
v␈ε"273
␈β↓\␈↓ π:␈ε∞MOD␈α↓ULAR␈α
ARIT␈α↓HME␈α↓TIC
␈βα$␈↓ α␈ε"As␈α∩w␈α␈e␈α∪ha␈α␈v␈α␈e␈α∩already␈α∩observ␈α␈ed,␈α∀the␈α∩operations␈α∩of␈α∪con␈α␈v␈α␈ersion␈α∩to␈α∩and␈α∩from
␈βαO␈↓ ↓H␈ε"m␈α↓odular␈α⊂represen␈α␈tation␈α⊃are␈α⊃v␈α␈ery␈α⊃importan␈α␈t.␈α∨If␈α⊂w␈α␈e␈α⊃are␈↓ λI␈ε"giv␈α␈en␈α⊃a␈α⊃n␈α␈um␈α␈ber␈ε(␈α⊃u␈ε"␈α␈,␈α∩its
␈βαz␈↓ ↓H␈ε"m␈α↓odular␈α∂represen␈α␈tation␈α⊂(␈↓ ∧U␈ε(u␈↓ ∧z␈ε",␈↓ ¬
␈ε".␈αε.␈αε.␈↓ ¬:␈ε",␈↓ ¬J␈ε(u␈↓ ¬n␈ε")␈α⊂ma␈α␈y␈α∂be␈α⊂obtained␈α∂by␈α∂simply␈α⊂dividing␈ε(␈α∂u␈ε"␈α∂by
␈ββπ␈↓ ∧i␈ε%1␈↓ ¬←␈ε+r
␈ββ&␈↓ ↓H␈ε(m␈↓ ↓x␈ε",␈↓ α⊂␈ε".␈αε.␈αε.␈↓ α@␈ε",␈↓ αX␈ε(m␈↓ β∀␈ε"and␈α∞sa␈α␈ving␈α
the␈α∞remainders.␈α∀A␈α
possibly␈α∞m␈α↓ore␈α
attractiv␈α␈e␈α
procedure,
␈ββ2␈↓ ↓g␈ε%1␈↓ αw␈ε+r
␈ββQ␈↓ ↓H␈ε"if␈ε(␈αu␈ε"␈α	=␈α
(␈↓ αB␈ε(v␈↓ αp␈ε(v␈↓ βQ␈ε".␈αε.␈αε.␈↓ ∧↓␈ε(v␈↓ ∧#␈ε")␈↓ ∧=␈ε",␈αis␈αto␈αev␈α}aluate␈αthe␈αpolyn␈α↓omial
␈ββ]␈↓ αT␈ε+m␈↓ βα␈ε+m␈ε9␈α␈␈␈ε%1␈↓ ∧∩␈ε%0␈↓ ∧/␈ε+b
␈β∧
␈↓ ∧6␈ε↓␈␈↓ πE␈ε↓↓
␈β∧(␈↓ ∧D␈ε".␈αε.␈αε.␈↓ ∧t␈ε"(␈↓ ¬␈ε(v␈↓ ¬.␈ε(b␈ε"␈αλ+␈↓ ¬q␈ε(v␈↓ εK␈ε")␈ε(b␈ε"␈α	+␈↓ π≠␈ε6↓␈αε↓␈αε↓␈↓ πY␈ε(b␈ε"␈αλ+␈↓ λ≤␈ε(v
␈β∧5␈↓ ¬⊃␈ε+m␈↓ εα␈ε+m␈ε9␈␈ε%1␈↓ λ-␈ε%0
␈β¬␈↓ ↓H␈ε"using␈α⊂m␈α↓odular␈α⊃arithmetic.␈α∨When␈ε(␈α⊃b␈ε"␈α∩=␈α∩2␈α⊃and␈α⊂when␈α⊃the␈α⊃m␈α↓odulus␈↓ 	v␈ε(m␈↓ 
6␈ε"has␈α⊂the
␈β¬␈↓ 
⊗␈ε+j
␈β¬%␈↓ β#␈ε+e
␈β¬+␈↓ ↓H␈ε"special␈αform␈↓ β⊃␈ε"2␈↓ βF␈ε6␈␈ε"␈αλ1,␈αboth␈αof␈αthese␈αmeth␈α↓ods␈αreduce␈αto␈αquite␈αa␈αsimple␈αprocedure:
␈β¬/␈↓ β0␈ε-j
␈β¬V␈↓ ↓H␈ε"Consider␈αthe␈αbinary␈αrepresen␈α␈tation␈αof␈ε(␈αu␈ε"␈αwith␈αblocks␈αof␈↓ λ(␈ε(e␈↓ λR␈ε"bits␈αgrouped␈αtogether,
␈β¬c␈↓ λ7␈ε+j
␈βε&␈↓ ∧t␈ε+t␈↓ ε≤␈ε+t␈ε9␈␈ε%1
␈βε.␈↓ βm␈ε(u␈ε"␈α
=␈↓ ∧:␈ε(a␈↓ ∧Z␈ε(A␈↓ ¬	␈ε"+␈↓ ¬5␈ε(a␈↓ εα␈ε(A␈↓ ε]␈ε"+␈↓ π	␈ε6↓␈αε↓␈αε↓␈↓ π;␈ε"+␈↓ πg␈ε(a␈↓ λ␈ε(A␈ε"␈αλ+␈↓ λY␈ε(a␈↓ λ⎇␈ε",␈↓ 
p␈ε"(20)
␈βε:␈↓ ∧M␈ε+t␈↓ ¬H␈ε+t␈ε9␈␈ε%1␈↓ πz␈ε%1␈↓ λl␈ε%0
␈βπ␈↓ β∀␈ε+e␈↓ ¬;␈ε+e
␈βπε␈↓ ↓H␈ε"where␈ε(␈αA␈ε"␈α
=␈↓ βα␈ε"2␈↓ β;␈ε"and␈α0␈ε6␈α
∀␈↓ ∧K␈ε(a␈↓ ∧{␈ε"<␈↓ ¬)␈ε"2␈↓ ¬b␈ε"for␈α0␈ε6␈α
∀␈↓ εd␈ε(k␈↓ πβ␈ε6∀␈ε(␈α
t␈ε".␈α⊂Then
␈βπ	␈↓ β!␈ε-j␈↓ ¬H␈ε-j
␈βπ∩␈↓ ∧↑␈ε+k
␈βπU␈↓ λP␈ε+e
␈βπ]␈↓ β-␈ε(u␈ε6␈α	⊃␈↓ βy␈ε(a␈↓ ∧!␈ε"+␈↓ ∧M␈ε(a␈↓ ¬"␈ε"+␈↓ ¬N␈ε6↓␈αε↓␈αε↓␈↓ ε␈ε"+␈↓ ε,␈ε(a␈↓ εX␈ε"+␈↓ π∧␈ε(a␈↓ π2␈ε"(modulo␈↓ λ>␈ε"2␈↓ λs␈ε6␈␈ε"␈αλ1),␈↓ 
p␈ε"(21)
␈βπ←␈↓ λ]␈ε-j
␈βπj␈↓ ∧␈ε+t␈↓ ∧`␈ε+t␈ε9␈α↓␈␈ε%␈α␈1␈↓ ε?␈ε%1␈↓ π↔␈ε%0
␈βλ5␈↓ ↓H␈ε"since␈ε(␈αA␈ε6␈α
⊃␈ε"␈α
1,␈αso␈αw␈α␈e␈αobtain␈↓ ∧j␈ε(u␈↓ ¬~␈ε"by␈αadding␈αthe␈↓ π␈ε(e␈↓ π#␈ε"-bit␈αn␈α␈um␈α␈bers␈↓ λw␈ε(a␈↓ 	∨␈ε6λ␈↓ 	J␈ε6↓␈αε↓␈αε↓␈↓ 	|␈ε6λ␈↓ 
(␈ε(a␈↓ 
S␈ε6λ␈↓ 
␈␈ε(a␈↓ "␈ε",
␈βλA␈↓ ∧␈␈ε+j␈↓ π∂␈ε+j␈↓ 	
␈ε+t␈↓ 
;␈ε%1␈↓ ∩␈ε%0
␈βλ`␈↓ ↓H␈ε"using␈α
(16).␈α∀This␈α
process␈α∞is␈α
similar␈α
to␈α∞the␈α
familiar␈α
device␈α
of␈α∞\␈↓ 	∞␈ε"casting␈α
out␈α
nines"
␈β	␈↓ ↓H␈ε"that␈αdetermines␈ε(␈αu␈↓ βf␈ε"mod␈↓ ∧0␈ε"9␈αwhen␈ε(␈αu␈ε"␈αis␈αexpressed␈αin␈αthe␈αdecimal␈αsystem.
␈β	7␈↓ α␈ε"Con␈α␈v␈α␈ersion␈α∩back␈α∩from␈α∩m␈α↓odular␈α∩form␈α∩to␈α∩positional␈α∩n␈α↓otation␈α∩is␈α⊃somewhat
␈β	b␈↓ ↓H␈ε"m␈α↓ore␈αdi}cult.␈α⊃It␈αis␈α
in␈α␈teresting␈αin␈α
this␈αregard␈αto␈α
mak␈α␈e␈αa␈αfew␈α
side␈αremarks␈αabout
␈β

␈↓ ↓H␈ε"the␈α
w␈α␈a␈α␈y␈αcomputers␈αmak␈α␈e␈αus␈αchange␈α
our␈αviewpoin␈α␈t␈αto␈α␈w␈α␈ards␈αmathematical␈α
pro␈α↓ofs:
␈β
8␈↓ ↓H␈ε"Theorem␈α∞C␈α∂tells␈α∂us␈↓ ∧
␈ε"that␈α∂the␈α∂con␈α␈v␈α␈ersion␈α∞from␈α∂(␈↓ π2␈ε(u␈↓ πX␈ε",␈↓ πh␈ε".␈αε.␈αε.␈↓ λ_␈ε",␈↓ λ(␈ε(u␈↓ λL␈ε")␈α∞to␈ε(␈α∂u␈ε"␈α∞is␈α∂possible,␈α∂and
␈β
E␈↓ πG␈ε%1␈↓ λ<␈ε+r
␈β
d␈↓ ↓H␈ε"t␈α␈w␈α␈o␈αpro␈α↓ofs␈α
are␈αgiv␈α␈en.␈α∩The␈α|rst␈α
pro␈α↓of␈αw␈α␈e␈α
considered␈αis␈αa␈α
classical␈αone␈α
that␈αrelies
␈β∂␈↓ ↓H␈ε"only␈αon␈αv␈α␈ery␈αsimple␈αconcepts,␈αnamely␈αthe␈αfacts␈αthat
␈βF␈↓ ↓j␈ε"i)␈↓ α␈ε"an␈α␈y␈α⊂n␈α␈um␈α␈ber␈α⊂that␈α⊂is␈α⊃a␈α⊂m␈α␈ultiple␈α⊂of␈↓ ε6␈ε(m␈↓ εf␈ε",␈α∩of␈↓ π0␈ε(m␈↓ π`␈ε",␈↓ π{␈ε".␈αε.␈αε.␈↓ λ+␈ε",␈α∩and␈α⊂of␈↓ 	?␈ε(m␈↓ 	n␈ε",␈α⊃m␈α␈ust␈α⊂be␈α⊂a
␈βS␈↓ εV␈ε%1␈↓ πP␈ε%2␈↓ 	←␈ε+r
␈βq␈↓ α␈ε"m␈α␈ultiple␈αof␈↓ βC␈ε(m␈↓ βt␈ε(m␈↓ ∧*␈ε".␈αε.␈αε.␈↓ ∧Z␈ε(m␈↓ ¬∃␈ε"when␈αthe␈↓ ε1␈ε(m␈↓ ε`␈ε"'s␈αare␈αpairwise␈αrelativ␈α␈ely␈αprime;␈αand
␈β}␈↓ βc␈ε%1␈↓ ∧∪␈ε%2␈↓ ∧z␈ε+r␈↓ εQ␈ε+j
␈β)␈↓ ↓`␈ε"ii)␈↓ α␈ε"if␈ε(␈αm␈ε"␈αthings␈α
are␈αput␈αin␈α␈to␈ε(␈α
m␈ε"␈αbo␈α␈xes␈αwith␈αn␈α↓o␈α
t␈α␈w␈α␈o␈αthings␈αin␈αthe␈α
same␈αbo␈α␈x,␈αthen
␈βT␈↓ α␈ε"there␈αm␈α␈ust␈αbe␈αone␈αin␈αeach␈αbo␈α␈x.
␈β
␈↓ ↓H␈ε"By␈α∂traditional␈α∂n␈α↓otions␈α⊂of␈α∂mathematical␈α∂aesthetics,␈α⊃this␈α∂is␈α∂n␈α↓o␈α⊂doubt␈α∂the␈α∂nicest
␈β
7␈↓ ↓H␈ε"pro␈α↓of␈α∪of␈α∩Theorem␈α∪C;␈α∪but␈α∪from␈α∪a␈α∪computational␈α∪standpoin␈α␈t␈α∪it␈α∪is␈α∩completely
␈β
b␈↓ ↓H␈ε"w␈α␈orthless.␈α∀It␈α
am␈α↓oun␈α␈ts␈α∞to␈α
sa␈α␈ying,␈α∞\T␈α⎇ry␈ε(␈α
u␈ε"␈α
=␈ε(␈αa␈ε",␈ε(␈α∞a␈ε"␈α	+␈α	1,␈↓ λ∨␈ε".␈αε.␈αε.␈↓ λW␈ε"un␈α␈til␈α
y␈α␈ou␈α∞|nd␈α
a␈α
v␈α}alue
␈β∞
␈↓ ↓H␈ε"for␈αwhich␈ε(␈αu␈ε6␈α	⊃␈↓ β4␈ε(u␈↓ βd␈ε"(modulo␈↓ ∧p␈ε(m␈↓ ¬!␈ε"),␈↓ ¬C␈ε".␈αε.␈αε.␈↓ ¬s␈ε",␈ε(␈αu␈ε6␈α	⊃␈↓ εU␈ε(u␈↓ πβ␈ε"(modulo␈↓ λ∂␈ε(m␈↓ λ?␈ε")."
␈β∞~␈↓ βI␈ε%1␈↓ ¬⊂␈ε%1␈↓ εj␈ε+r␈↓ λ/␈ε+r
␈β∞9␈↓ α␈ε"The␈αsecond␈α
pro␈α↓of␈αof␈α
Theorem␈αC␈α
is␈αm␈α↓ore␈α
explicit;␈αit␈αsh␈α↓o␈α␈ws␈α
h␈α↓o␈α␈w␈αto␈α
compute␈↓ ≤␈ε(r
␈β∞d␈↓ ↓H␈ε"new␈αconstan␈α␈ts␈↓ β1␈ε(M␈↓ βg␈ε",␈↓ β⎇␈ε".␈αε.␈αε.␈↓ ∧-␈ε",␈↓ ∧D␈ε(M␈↓ ∧w␈ε",␈α
and␈αto␈α
get␈αthe␈αsolution␈α
in␈αterms␈α
of␈αthese␈αconstan␈α␈ts
␈β∞q␈↓ βV␈ε%1␈↓ ∧h␈ε+r
␈β∂∂␈↓ ↓H␈ε"by␈α
form␈α␈ula␈α
(9).␈α⊂This␈α
pro␈α↓of␈α
uses␈αm␈α↓ore␈α
complicated␈α
concepts␈α
(for␈αexample,␈α
Euler's
␈β∂;␈↓ ↓H␈ε"theorem),␈α⊃but␈α⊂it␈α⊂is␈α⊂m␈α␈uch␈α⊂m␈α↓ore␈α⊂satisfactory␈α⊂from␈α∂a␈α⊂computational␈α⊂standpoin␈α␈t,
␈β∂f␈↓ ↓H␈ε"since␈α⊃the␈α∩constan␈α␈ts␈↓ ∧
␈ε(M␈↓ ∧B␈ε",␈↓ ∧←␈ε".␈αε.␈αε.␈↓ ¬∂␈ε",␈↓ ¬,␈ε(M␈↓ ¬q␈ε"need␈α∩to␈α∩be␈α⊃determined␈α∩only␈α⊃once.␈α!On␈α⊃the
␈β∂r␈↓ ∧2␈ε%1␈↓ ¬P␈ε+r
␈β⊂⊃␈↓ ↓H␈ε"other␈αhand,␈αthe␈αdetermination␈αof␈↓ ¬T␈ε(M␈↓ ε∪␈ε"by␈αEq.␈α(8)␈αis␈αcertainly␈α
n␈α↓ot␈αtrivial,␈αsince␈α
the
␈β⊂≥␈↓ ¬y␈ε+j
␈β⊂<␈↓ ↓H␈ε"ev␈α}aluation␈α
of␈αEuler's␈ε(␈α
⎇␈ε"-function␈α
requires,␈αin␈αgeneral,␈α
the␈αfactorization␈↓ 

␈ε"of␈↓ 
6␈ε(m␈↓ 
o␈ε"in␈α␈to
␈β⊂I␈↓ 
V␈ε+j
␈β⊂g␈↓ ↓H␈ε"prime␈α	po␈α␈w␈α␈ers.␈α∂F␈α⎇urtherm␈α↓ore,␈↓ ¬λ␈ε(M␈↓ ¬E␈ε"is␈α
lik␈α␈ely␈α	to␈α
be␈α	a␈α
terribly␈α	large␈α
n␈α␈um␈α␈ber,␈α	ev␈α␈en␈α
if␈α	w␈α␈e
␈β⊂t␈↓ ¬-␈ε+j␈↓ ε→␈ε↓␈␈↓ ∀␈ε↓↓
␈β⊃∪␈↓ ↓H␈ε"compute␈α	only␈α
the␈α
quan␈α␈tit␈α␈y␈↓ ∧m␈ε(M␈↓ ¬&␈ε"mod␈↓ ¬p␈ε(m␈↓ ε'␈ε"which␈α
will␈α
w␈α␈ork␈α
just␈α	as␈α
w␈α␈ell␈α
as␈↓ 
ε␈ε(M␈↓ 
C␈ε"in␈α	(9)␈↓ "␈ε".
␈β⊃∨␈↓ ¬⊃␈ε+j␈↓ 
*␈ε+j
␈β∪(

␈β↓U␈↓ ↓H␈ε"274␈↓ 
b␈ε"4.3.2
␈β↓\␈↓ α=␈ε∞ARITH␈α↓MET␈α↓IC
␈βα!␈↓ ↓H␈ε"Since␈↓ α(␈ε(M␈↓ αa␈ε"mod␈↓ β+␈ε(m␈ε"␈α∞is␈α∞uniquely␈α
determined␈α∞if␈α∞(7)␈α∞is␈α∞to␈α∞be␈α∞satis|ed␈α∞(because␈α∞of␈α
the
␈βα-␈↓ αL␈ε+j
␈βαL␈↓ ↓H␈ε"Chinese␈α∞remainder␈α∂theorem),␈α∂w␈α␈e␈α∂can␈α∂see␈α∞that,␈α⊂in␈α∞an␈α␈y␈α∂ev␈α␈en␈α␈t,␈α∂Eq.␈α∂(9)␈α∂requires␈α∞a
␈βαw␈↓ ↓H␈ε"lot␈αof␈αhigh-precision␈αcalculation,␈αand␈αsuch␈αcalculation␈αis␈αjust␈αwhat␈αw␈α␈e␈αwished␈αto
␈ββ#␈↓ ↓H␈ε"a␈α␈v␈α␈oid␈αby␈αm␈α↓odular␈αarithmetic␈αin␈αthe␈α|rst␈αplace.
␈ββN␈↓ α␈ε"So␈α∂w␈α␈e␈α∞need␈α∂an␈α∞ev␈α␈en␈ε/␈α∂better␈↓ ¬H␈ε"pro␈α↓of␈α∞of␈α∂Theorem␈α∞C␈α∂if␈α∂w␈α␈e␈α∞are␈α∂going␈α∞to␈α∂ha␈α␈v␈α␈e␈α∞a
␈ββy␈↓ ↓H␈ε"really␈α
usable␈α∞meth␈α↓od␈α∞of␈α
con␈α␈v␈α␈ersion␈α∞from␈α∞(␈↓ εa␈ε(u␈↓ πε␈ε",␈↓ π⊗␈ε".␈αε.␈αε.␈↓ πF␈ε",␈↓ πV␈ε(u␈↓ πz␈ε")␈α∞to␈ε(␈α∞u␈ε"␈α␈.␈α∃Such␈α∞a␈α∞meth␈α↓od␈α
w␈α␈as
␈β∧¬␈↓ εu␈ε%1␈↓ πk␈ε+r
␈β∧ε␈↓ 	-␈ε↓␈␈↓ 	J␈ε↓↓
␈β∧≠␈↓ 	;␈ε+r
␈β∧$␈↓ ↓H␈ε"suggested␈αby␈αH.␈α
L.␈↓ β|␈ε"Garner␈αin␈α1958;␈α
it␈αcan␈αbe␈α
carried␈αout␈αusing␈↓ 	d␈ε"constan␈α␈ts␈↓ β␈ε(c
␈β∧1␈↓ ∪␈ε+i␈↓ ≥␈ε+j
␈β∧5␈↓ 	;␈ε%2
␈β∧O␈↓ ↓H␈ε"for␈α1␈ε6␈α
∀␈ε(␈α
i␈ε"␈α
<␈↓ β∞␈ε(j␈↓ β)␈ε6∀␈↓ βW␈ε(r␈↓ βh␈ε",␈αwhere
␈β¬!␈↓ ∧h␈ε(c␈↓ ¬↔␈ε(m␈↓ ¬M␈ε6⊃␈ε"␈α
1␈α.(modulo␈↓ πG␈ε(m␈↓ πv␈ε").␈↓ 
p␈ε"(22)
␈β¬-␈↓ ∧w␈ε+i␈↓ ¬α␈ε+j␈↓ ¬7␈ε+i␈↓ πg␈ε+j
␈β¬r␈↓ ↓H␈ε"These␈αconstan␈α␈ts␈↓ βL␈ε(c␈↓ ∧␈ε"are␈αreadily␈αcomputed␈αusing␈αEuclid's␈αalgorithm,␈αsince␈αfor␈α
an␈α␈y
␈β¬}␈↓ β\␈ε+i␈↓ βf␈ε+j
␈βε≥␈↓ ↓H␈ε"giv␈α␈en␈ε(␈αi␈ε"␈α
and␈↓ β¬␈ε(j␈↓ β"␈ε"Algorithm␈α4.5.2X␈α
will␈αdetermine␈ε(␈αa␈ε"␈αand␈ε(␈α
b␈ε"␈αsuch␈αthat␈ε(␈α
a␈↓ 	`␈ε(m␈↓ 
∀␈ε"+␈ε(␈αλb␈↓ 
O␈ε(m␈↓ λ␈ε"=
␈βε*␈↓ 	␈␈ε+i␈↓ 
o␈ε+j
␈βεH␈↓ ↓H␈ε"gcd␈↓ ↓}␈ε"(␈↓ α
␈ε(m␈↓ α6␈ε",␈↓ αF␈ε(m␈↓ αu␈ε")␈α=␈α1,␈α
and␈αw␈α␈e␈α
ma␈α␈y␈α
tak␈α␈e␈↓ ¬␈␈ε(c␈↓ ε3␈ε"=␈ε(␈αa␈ε".␈α∩When␈α
the␈αm␈α↓oduli␈α
ha␈α␈v␈α␈e␈α
the␈αspecial
␈βεU␈↓ α)␈ε+i␈↓ αe␈ε+j␈↓ ε∞␈ε+i␈↓ ε_␈ε+j
␈βεn␈↓ α0␈ε+e
␈βεt␈↓ ↓H␈ε"form␈↓ α≡␈ε"2␈↓ αS␈ε6␈␈ε"␈αλ1,␈αa␈αsimple␈αmeth␈α↓od␈αof␈αdetermining␈↓ π*␈ε(c␈↓ π←␈ε"is␈αgiv␈α␈en␈αin␈αexercise␈α6.
␈βεw␈↓ α=␈ε-j
␈βπ␈↓ π:␈ε+i␈↓ πD␈ε+j
␈βπ∨␈↓ α␈ε"Once␈αthe␈↓ β&␈ε(c␈↓ β[␈ε"ha␈α␈v␈α␈e␈αbeen␈αdetermined␈αsatisfying␈α(22),␈αw␈α␈e␈αcan␈αset
␈βπ+␈↓ β5␈ε+i␈↓ β@␈ε+j
␈βπl␈↓ αD␈ε(v␈↓ αq␈ε6␈ ␈↓ β∨␈ε(u␈↓ βJ␈ε"mod␈↓ ∧∀␈ε(m␈↓ ∧E␈ε",
␈βπx␈↓ αV␈ε%1␈↓ β3␈ε%1␈↓ ∧4␈ε%1
␈βλ"␈↓ αD␈ε(v␈↓ αq␈ε6␈ ␈ε"␈α
(␈↓ β+␈ε(u␈↓ βX␈ε6␈␈↓ ∧∧␈ε(v␈↓ ∧&␈ε")␈↓ ∧8␈ε(c␈↓ ∧n␈ε"mod␈↓ ¬8␈ε(m␈↓ ¬h␈ε",
␈βλ.␈↓ αV␈ε%2␈↓ β?␈ε%2␈↓ ∧⊗␈ε%1␈↓ ∧H␈ε%12␈↓ ¬W␈ε%2
␈βλ9␈↓ β∨␈ε↓␈␈↓ ¬L␈ε↓↓
␈βλX␈↓ αD␈ε(v␈↓ αq␈ε6␈ ␈↓ β-␈ε"(␈↓ β9␈ε(u␈↓ βf␈ε6␈␈↓ ∧∩␈ε(v␈↓ ∧4␈ε")␈↓ ∧F␈ε(c␈↓ ∧}␈ε6␈␈↓ ¬*␈ε(v␈↓ ¬`␈ε(c␈↓ ε∃␈ε"mod␈↓ ε←␈ε(m␈↓ π⊂␈ε",
␈βλd␈↓ αV␈ε%3␈↓ βM␈ε%3␈↓ ∧$␈ε%1␈↓ ∧V␈ε%13␈↓ ¬;␈ε%2␈↓ ¬o␈ε%23␈↓ ε␈␈ε%3
␈βλg␈↓ 
p␈ε"(23)
␈β		␈↓ α]␈ε".
␈β	↔␈↓ α]␈ε".
␈β	&␈↓ α]␈ε".
␈β	=␈↓ β∨␈ε↓␈␈↓ λ%␈ε↓↓
␈β	\␈↓ αF␈ε(v␈↓ αq␈ε6␈ ␈↓ β-␈ε".␈αε.␈αε.␈↓ β]␈ε"((␈↓ βu␈ε(u␈↓ ∧!␈ε6␈␈↓ ∧M␈ε(v␈↓ ∧o␈ε")␈↓ ¬↓␈ε(c␈↓ ¬7␈ε6␈␈↓ ¬c␈ε(v␈↓ ε¬␈ε")␈↓ ε↔␈ε(c␈↓ εM␈ε6␈␈↓ εy␈ε6↓␈αε↓␈αε↓␈↓ π+␈ε6␈␈↓ πW␈ε(v␈↓ λ9␈ε(c␈↓ 	-␈ε"mod␈↓ 	w␈ε(m␈↓ 
&␈ε".
␈β	h␈↓ αW␈ε+r␈↓ ∧	␈ε+r␈↓ ∧↑␈ε%1␈↓ ¬⊂␈ε%1␈↓ ¬∨␈ε+r␈↓ ¬t␈ε%2␈↓ ε&␈ε%2␈↓ ε6␈ε+r␈↓ πh␈ε+r␈↓ πv␈ε9␈␈ε%1␈↓ 
⊗␈ε+r
␈β	i␈↓ λH␈ε%(␈↓ λR␈ε+r␈↓ λ`␈ε9␈␈ε%1)␈↓ 	↔␈ε+r
␈β
+␈↓ ↓H␈ε"Then
␈β
V␈↓ β⊂␈ε(u␈ε"␈α
=␈↓ β]␈ε(v␈↓ β}␈ε(m␈↓ ∧`␈ε".␈αε.␈αε.␈↓ ¬⊂␈ε(m␈↓ ¬A␈ε(m␈↓ ¬y␈ε"+␈↓ ε%␈ε6↓␈αε↓␈αε↓␈↓ εW␈ε"+␈↓ πβ␈ε(v␈↓ π%␈ε(m␈↓ πV␈ε(m␈↓ λ∂␈ε"+␈↓ λ;␈ε(v␈↓ λ]␈ε(m␈↓ 	∃␈ε"+␈↓ 	A␈ε(v␈↓ 
p␈ε"(24)
␈β
c␈↓ βo␈ε+r␈↓ ∧≡␈ε+r␈↓ ∧,␈ε9␈␈ε%␈α␈1␈↓ ¬0␈ε%2␈↓ ¬`␈ε%1␈↓ π∃␈ε%3␈↓ πE␈ε%2␈↓ πv␈ε%1␈↓ λL␈ε%2␈↓ λ⎇␈ε%1␈↓ 	S␈ε%1
␈β→␈↓ ↓H␈ε"is␈αa␈αn␈α␈um␈α␈ber␈αsatisfying␈αthe␈αconditions
␈βj␈↓ β
␈ε"0␈ε6␈α
∀␈ε(␈α
u␈ε"␈α
<␈ε(␈α
m␈ε",␈ε(␈↓ ¬≤u␈ε6␈α	⊃␈↓ ¬h␈ε(u␈↓ ε⊗␈ε"(modulo␈↓ π"␈ε(m␈↓ πQ␈ε")␈↓ λ↓␈ε"for␈↓ λ9␈ε"1␈ε6␈α
∀␈↓ 	β␈ε(j␈↓ 	≡␈ε6∀␈↓ 	L␈ε(r␈↓ 	]␈ε".␈↓ 
p␈ε"(25)
␈βv␈↓ ¬⎇␈ε+j␈↓ πB␈ε+j
␈β;␈↓ ↓H␈ε"(See␈α⊂exercise␈α⊂8;␈α∩an␈α↓other␈α⊂w␈α␈a␈α␈y␈α⊂of␈α⊂rewriting␈α⊂(23)␈α⊂that␈α⊂does␈α⊂n␈α↓ot␈α⊂in␈α␈v␈α␈olv␈α␈e␈α⊂as␈α⊂man␈α␈y
␈βf␈↓ ↓H␈ε"auxiliary␈αconstan␈α␈ts␈αis␈αgiv␈α␈en␈αin␈αexercise␈α7.)␈α∃Equation␈α(24)␈αis␈αa␈ε/␈αmixed-radix␈αrepre-
␈β
∩␈↓ ↓H␈ε/sen␈α␈tation␈ε"␈αof␈ε(␈αu␈ε",␈αwhich␈αma␈α␈y␈αbe␈αcon␈α␈v␈α␈erted␈αto␈αbinary␈αor␈αdecimal␈αn␈α↓otation␈αusing␈αthe
␈β
=␈↓ ↓H␈ε"meth␈α↓ods␈αof␈α
Section␈α4.4.␈α∩If␈α
0␈ε6␈α∀␈ε(␈αu␈ε"␈α
<␈ε(␈αm␈ε"␈α
is␈αn␈α↓ot␈α
the␈α
desired␈αrange,␈α
an␈αappropriate
␈β
h␈↓ ↓H␈ε"m␈α␈ultiple␈αof␈ε(␈αm␈ε"␈αcan␈αbe␈αadded␈αor␈αsubtracted␈αa$er␈αthe␈αcon␈α␈v␈α␈ersion␈αprocess.
␈β∞∪␈↓ α␈ε"The␈α
adv␈α}an␈α␈tage␈α
of␈α∞the␈α
computation␈α
sh␈α↓o␈α␈wn␈α
in␈α
(23)␈α∞is␈α
that␈α
the␈α
calculation␈α
of
␈β∞>␈↓ ↓H␈ε(v␈↓ ↓w␈ε"can␈α∞be␈α∂done␈α∞using␈α∂only␈α∞arithmetic␈α∂m␈α↓od␈↓ ε|␈ε(m␈↓ π+␈ε",␈α∂which␈α∂is␈α∞already␈α∂built␈α∞in␈α␈to␈α∞the
␈β∞K␈↓ ↓Y␈ε+j␈↓ π≤␈ε+j
␈β∞j␈↓ ↓H␈ε"m␈α↓odular␈α
arithmetic␈α
algorithms.␈α∩F␈α⎇urtherm␈α↓ore,␈α∞(23)␈α
allo␈α␈ws␈αparallel␈α
computation:
␈β∂∃␈↓ ↓H␈ε"W␈α⎇e␈αcan␈αstart␈αwith␈α(␈↓ βx␈ε(v␈↓ ∧~␈ε",␈↓ ∧*␈ε".␈αε.␈αε.␈↓ ∧Z␈ε",␈↓ ∧j␈ε(v␈↓ ¬␈ε")␈ε6␈α
␈ ␈ε"␈α
(␈↓ ¬[␈ε(u␈↓ επ␈ε"mod␈↓ εQ␈ε(m␈↓ π↓␈ε",␈↓ π⊃␈ε".␈αε.␈αε.␈↓ πA␈ε",␈↓ πQ␈ε(u␈↓ π{␈ε"mod␈↓ λE␈ε(m␈↓ λu␈ε"),␈αthen␈αat␈αtime␈↓ 
d␈ε(j␈↓ ␈ε"for
␈β∂!␈↓ ∧
␈ε%1␈↓ ∧|␈ε+r␈↓ ¬p␈ε%1␈↓ εq␈ε%1␈↓ πf␈ε+r␈↓ λe␈ε+r
␈β∂@␈↓ ↓H␈ε"1␈ε6␈α∞∀␈↓ α~␈ε(j␈↓ α9␈ε"<␈↓ αl␈ε(r␈↓ β␈ε"w␈α␈e␈α∞sim␈α␈ultaneously␈α∂set␈↓ ¬t␈ε(v␈↓ ε%␈ε6␈ ␈ε"␈α∂(␈↓ εd␈ε(v␈↓ π⊃␈ε6␈␈↓ π?␈ε(v␈↓ π`␈ε")␈↓ πr␈ε(c␈↓ λ'␈ε"mod␈↓ λq␈ε(m␈↓ 	1␈ε"for␈↓ 	l␈ε(j␈↓ 
␈ε"<␈↓ 
=␈ε(k␈↓ 
`␈ε6∀␈↓ ∩␈ε(r␈↓ "␈ε".
␈β∂L␈↓ ε¬␈ε+k␈↓ εu␈ε+k␈↓ πP␈ε+j␈↓ λ↓␈ε+j␈↓ λ∞␈ε+k␈↓ 	⊂␈ε+k
␈β∂k␈↓ ↓H␈ε"An␈αalternativ␈α␈e␈αw␈α␈a␈α␈y␈αto␈αcompute␈αthe␈αmixed-radix␈αrepresen␈α␈tation,␈αallo␈α␈wing␈αsimilar
␈β⊂⊗␈↓ ↓H␈ε"possibilities␈α∂for␈α∂parallelism,␈α∂has␈α⊂been␈α∂discussed␈α∂by␈α∂A.␈α∂S.␈↓ λY␈ε"F␈α⎇raenk␈α␈el,␈ε/␈α∂Proc.␈α∂A␈α␈CM
␈β⊂B␈↓ ↓H␈ε/Nat.␈αConf.␈ε2␈α19␈ε"␈α(Philadelphia,␈α1965),␈αE1.4.
␈β⊂m␈↓ α␈ε"It␈α
is␈α
importan␈α␈t␈αto␈α
observ␈α␈e␈α
that␈α
the␈αmixed-radix␈α
represen␈α␈tation␈α
(24)␈α
is␈αsu}-
␈β⊃_␈↓ ↓H␈ε"cien␈α␈t␈αto␈αcompare␈αthe␈αmagnitudes␈αof␈αt␈α␈w␈α␈o␈αm␈α↓odular␈αn␈α␈um␈α␈bers.␈α⊂F␈α⎇or␈αif␈αw␈α␈e␈αkn␈α↓o␈α␈w␈αthat
␈β∪(

␈β↓U␈↓ ↓H␈ε"4.3.2␈↓ 
v␈ε"275
␈β↓\␈↓ π:␈ε∞MOD␈α↓ULAR␈α
ARIT␈α↓HME␈α↓TIC
␈βα≡␈↓ ∧R␈ε90␈↓ λz␈ε90
␈βα$␈↓ ↓H␈ε"0␈ε6␈α∂∀␈ε(␈α∞u␈ε"␈α∂<␈ε(␈α∂m␈ε"␈α∂and␈α∂0␈ε6␈α∂∀␈↓ ∧=␈ε(u␈↓ ∧k␈ε"<␈ε(␈α∂m␈ε"␈α␈,␈α⊂then␈α∂w␈α␈e␈α∂can␈α∂tell␈α∂if␈ε(␈α∂u␈ε"␈α∞<␈↓ λe␈ε(u␈↓ 	∪␈ε"by␈α∂|rst␈α∞doing␈α∂the
␈βαI␈↓ ¬B␈ε90␈↓ ε6␈ε90␈↓ 	?␈ε90␈↓  ␈ε90
␈βαO␈↓ ↓H␈ε"con␈α␈v␈α␈ersion␈α
to␈α(␈↓ β0␈ε(v␈↓ βS␈ε",␈↓ βc␈ε".␈αε.␈αε.␈↓ ∧∪␈ε",␈↓ ∧#␈ε(v␈↓ ∧D␈ε")␈α
and␈α(␈↓ ¬/␈ε(v␈↓ ¬S␈ε",␈↓ ¬c␈ε".␈αε.␈αε.␈↓ ε∪␈ε",␈↓ ε#␈ε(v␈↓ εB␈ε"),␈α∞then␈αtesting␈α
if␈↓ λR␈ε(v␈↓ λ⎇␈ε"<␈↓ 	-␈ε(v␈↓ 	L␈ε",␈α
or␈α
if␈↓ 
3␈ε(v␈↓ 
↑␈ε"=␈↓ 
␈ε(v
␈βα\␈↓ βB␈ε%1␈↓ ∧4␈ε+r
␈βα`␈↓ ¬B␈ε%1␈↓ ε3␈ε+r␈↓ λb␈ε+r␈↓ 	<␈ε+r␈↓ 
C␈ε+r␈↓ ≥␈ε+r
␈βαt␈↓ β8␈ε90
␈βαz␈↓ ↓H␈ε"and␈↓ α∩␈ε(v␈↓ αo␈ε"<␈↓ β%␈ε(v␈↓ βq␈ε",␈α⊃etc.␈α≡It␈α⊂is␈α⊂n␈α↓ot␈α⊃necessary␈α⊂to␈α⊂con␈α␈v␈α␈ert␈α⊃all␈α⊂the␈α⊃w␈α␈a␈α␈y␈α⊂to␈α⊂binary
␈ββ␈↓ α"␈ε+r␈↓ α0␈ε9␈␈ε%␈α␈1␈↓ β5␈ε+r␈↓ βB␈ε9␈␈ε%1
␈ββ&␈↓ ↓H␈ε"or␈α∞decimal␈α∂n␈α↓otation␈α∂if␈α∂w␈α␈e␈α∂only␈α∞w␈α␈an␈α␈t␈α∂to␈α∂kn␈α↓o␈α␈w␈α∂whether␈α∞(␈↓ λD␈ε(u␈↓ λj␈ε",␈↓ λz␈ε".␈αε.␈αε.␈↓ 	*␈ε",␈↓ 	:␈ε(u␈↓ 	↑␈ε")␈α∂is␈α∂less␈α∞than
␈ββ2␈↓ λY␈ε%1␈↓ 	O␈ε+r
␈ββK␈↓ ↓h␈ε90␈↓ α↑␈ε90
␈ββQ␈↓ ↓H␈ε"(␈↓ ↓T␈ε(u␈↓ ↓y␈ε",␈↓ α	␈ε".␈αε.␈αε.␈↓ α9␈ε",␈↓ αI␈ε(u␈↓ αm␈ε").
␈ββb␈↓ ↓h␈ε%1␈↓ α↑␈ε+r
␈ββ|␈↓ α␈ε"The␈αλoperation␈α	of␈αλcomparing␈α	t␈α␈w␈α␈o␈αλn␈α␈um␈α␈bers,␈α	or␈αλof␈α	deciding␈αλif␈α	a␈αλm␈α↓odular␈αλn␈α␈um␈α␈ber
␈β∧'␈↓ ↓H␈ε"is␈αnegativ␈α␈e,␈αis␈αin␈α␈tuitiv␈α␈ely␈αv␈α␈ery␈αsimple,␈αso␈αw␈α␈e␈αw␈α␈ould␈αexpect␈αto␈αha␈α␈v␈α␈e␈αa␈αm␈α␈uch␈αeasier
␈β∧R␈↓ ↓H␈ε"meth␈α↓od␈αfor␈α
making␈α
this␈α
test␈αthan␈α
the␈α
con␈α␈v␈α␈ersion␈α
to␈α
mixed-radix␈αform.␈α∪But␈αthe
␈β∧}␈↓ ↓H␈ε"follo␈α␈wing␈α
theorem␈α
sh␈α↓o␈α␈ws␈α
that␈αthere␈α
is␈α
little␈α
h␈α↓ope␈αof␈α
|nding␈α
a␈α
substan␈α␈tially␈α
better
␈β¬)␈↓ ↓H␈ε"meth␈α↓od,␈αsince␈α
the␈α
range␈αof␈α
a␈α
m␈α↓odular␈αn␈α␈um␈α␈ber␈α
depends␈α
essen␈α␈tially␈αon␈α
all␈α
bits␈αof
␈β¬T␈↓ ↓H␈ε"all␈αthe␈αresidues␈α(␈↓ βL␈ε(u␈↓ βq␈ε",␈↓ ∧↓␈ε".␈αε.␈αε.␈↓ ∧1␈ε",␈↓ ∧A␈ε(u␈↓ ∧e␈ε"):
␈β¬`␈↓ β`␈ε%1␈↓ ∧V␈ε+r
␈βε∀␈↓ ↓H␈ε2Theorem␈α
S␈ε"␈α(Nich␈α↓olas␈↓ ∧≠␈ε"Szab␈↓ ∧e␈ε"∞␈↓ ∧e␈ε"o␈↓ ∧w␈ε",␈α1961)␈ε2.␈ε/␈α∃In␈αterms␈α
of␈αthe␈αn␈α↓otation␈αabo␈α␈v␈α␈e,␈αassume␈α
that
␈βε>␈↓ α0␈ε6p
␈βε@␈↓ ↓H␈ε(m␈↓ αα␈ε"<␈↓ αN␈ε(m␈↓ αn␈ε/,␈αand␈αlet␈ε(␈αL␈ε/␈αbe␈αan␈α␈y␈αv␈α}alue␈αin␈αthe␈αrange
␈βεA␈↓ αN␈∧εAαNα 
␈βεL␈↓ ↓g␈ε%1
␈βπ∃␈↓ ¬↔␈ε(m␈↓ ¬Q␈ε6∀␈ε(␈α
L␈ε6␈α
∀␈ε(␈α
m␈ε6␈αλ␈␈↓ π#␈ε(m␈↓ πS␈ε".␈↓ 
p␈ε"(26)
␈βπ!␈↓ ¬6␈ε%1␈↓ πC␈ε%1
␈βπj␈↓ ↓H␈ε/Let␈↓ αλ␈ε(g␈↓ α$␈ε/be␈α
an␈α␈y␈α
function␈α
such␈αthat␈α
the␈α
set␈ε6␈α
f␈↓ εA␈ε(g␈↓ εS␈ε"(0),␈↓ π
␈ε(g␈↓ π∨␈ε"(1),␈↓ πY␈ε".␈αε.␈αε.␈↓ λ	␈ε",␈↓ λ→␈ε(g␈↓ λ+␈ε"(␈↓ λ7␈ε(m␈↓ λl␈ε6␈␈ε"␈α∧1)␈ε6g␈ε/␈α
con␈α␈tains␈α
few␈α␈er
␈βπw␈↓ λW␈ε%1
␈βλ∃␈↓ ↓H␈ε/than␈↓ α≤␈ε(m␈↓ αX␈ε/v␈α}alues.␈α⊂Then␈αthere␈αare␈αn␈α␈um␈α␈bers␈ε(␈αu␈ε/␈αand␈↓ π>␈ε(v␈↓ π]␈ε/such␈αthat
␈βλ"␈↓ α;␈ε%1
␈βλd␈↓ ↓h␈ε(g␈↓ ↓z␈ε"(␈ε(u␈↓ α!␈ε"mod␈↓ αk␈ε(m␈↓ β≠␈ε")␈α
=␈↓ β←␈ε(g␈↓ βq␈ε"(␈↓ β⎇␈ε(v␈↓ ∧⊗␈ε"mod␈↓ ∧`␈ε(m␈↓ ¬⊃␈ε"),␈ε(␈↓ ¬uu␈↓ ε⊂␈ε"mod␈↓ εZ␈ε(m␈↓ π∩␈ε"=␈↓ π@␈ε(v␈↓ πY␈ε"mod␈↓ λ#␈ε(m␈↓ λj␈ε"for␈↓ 	"␈ε"2␈ε6␈α
∀␈↓ 	l␈ε(j␈↓ 
π␈ε6∀␈↓ 
5␈ε(r␈↓ 
F␈ε";␈↓ 
p␈ε"(27)
␈βλp␈↓ β␈ε%1␈↓ ¬␈ε%1␈↓ εy␈ε+j␈↓ λC␈ε+j
␈β	⊗␈↓ ∧n␈ε"0␈ε6␈α
∀␈ε(␈α
u␈ε"␈α
<␈ε(␈α
L␈ε6␈α
∀␈↓ εU␈ε(v␈↓ εr␈ε"<␈ε(␈α
m␈ε".␈↓ 
p␈ε"(28)
␈β	k␈↓ ↓H␈ε/Pro␈α↓of.␈ε"␈α≠By␈α∞h␈α␈ypothesis,␈α∞there␈α
m␈α␈ust␈α
exist␈α∞n␈α␈um␈α␈bers␈ε(␈α
u␈ε6␈α≤␈↓ λ+␈ε(v␈↓ λK␈ε"satisfying␈α
(27),␈α∞since␈↓ ≠␈ε(g
␈β
↔␈↓ ↓H␈ε"m␈α␈ust␈α∞tak␈α␈e␈α∞on␈α∞the␈α∞same␈α∞v␈α}alue␈α∞for␈α∞t␈α␈w␈α␈o␈α∞di{eren␈α␈t␈α∞residues.␈α⊗Let␈α∂(␈ε(u␈ε"␈α␈,␈↓ 	C␈ε(v␈↓ 	V␈ε")␈α∞be␈α∞a␈α∞pair␈α∞of
␈β
B␈↓ ↓H␈ε"v␈α}alues␈α
with␈α∞0␈ε6␈α∀␈ε(␈α
u␈ε"␈α<␈↓ ∧)␈ε(v␈↓ ∧H␈ε"<␈ε(␈α
m␈ε"␈α
satisfying␈α
(27),␈α∞for␈α∞which␈ε(␈α
u␈ε"␈α∞is␈α
a␈α∞minim␈α␈um.␈α∀Since
␈β
g␈↓ ↓\␈ε90␈↓ ∧→␈ε90␈↓ 
∪␈ε90
␈β
m␈↓ ↓H␈ε(u␈↓ ↓w␈ε"=␈ε(␈α∩u␈ε6␈α
␈␈↓ α{␈ε(m␈↓ β<␈ε"and␈↓ ∧ε␈ε(v␈↓ ∧4␈ε"=␈↓ ∧i␈ε(v␈↓ ¬π␈ε6␈␈↓ ¬6␈ε(m␈↓ ¬w␈ε"also␈α⊂satisfy␈α⊃(27),␈α⊃w␈α␈e␈α⊂m␈α␈ust␈α⊃ha␈α␈v␈α␈e␈↓ 	}␈ε(u␈↓ 
.␈ε"<␈α⊃0␈α⊂by
␈β
y␈↓ β≠␈ε%1␈↓ ¬V␈ε%1
␈β_␈↓ ↓H␈ε"the␈α∞minimalit␈α␈y␈α∞of␈ε(␈α∞u␈ε"␈α␈.␈α⊗Hence␈ε(␈α∞u␈ε"␈α
<␈↓ ¬`␈ε(m␈↓ ε≡␈ε6∀␈ε(␈α
L␈ε";␈α∂and␈α∞if␈α∞(28)␈α∞does␈α∞n␈α↓ot␈α∞h␈α↓old,␈α∞w␈α␈e␈α∞m␈α␈ust
␈β%␈↓ ε␈ε%1
␈βC␈↓ ↓H␈ε"ha␈α␈v␈α␈e␈↓ α≡␈ε(v␈↓ α@␈ε"<␈ε(␈α∂L␈ε".␈α→But␈↓ βw␈ε(v␈↓ ∧→␈ε">␈ε(␈α∂u␈ε",␈α⊂and␈↓ ¬D␈ε(v␈↓ ¬a␈ε6␈␈ε(␈α
u␈ε"␈α∂is␈α∂a␈α∂m␈α␈ultiple␈α∂of␈↓ λ8␈ε(m␈↓ λo␈ε".␈αε.␈αε.␈↓ 	∨␈ε(m␈↓ 	]␈ε"=␈ε(␈α∂m␈ε"/␈↓ 
B␈ε(m␈↓ 
s␈ε",␈α∂so
␈βP␈↓ λX␈ε%2␈↓ 	?␈ε+r␈↓ 
b␈ε%1
␈βo␈↓ ↓H␈ε(v␈↓ ↓e␈ε6∃␈↓ α∪␈ε(v␈↓ α-␈ε6␈␈ε(␈αλu␈ε6␈α
∃␈ε(␈α
m␈ε"␈α␈/␈↓ βW␈ε(m␈↓ ∧∩␈ε">␈↓ ∧@␈ε(m␈↓ ∧p␈ε".␈α⊂Therefore,␈αif␈α(28)␈αdoes␈αn␈α↓ot␈αh␈α↓old␈αfor␈α(␈ε(u␈ε",␈↓ 	l␈ε(v␈↓ 	␈␈ε"),␈αit␈αwill␈αbe
␈β{␈↓ βw␈ε%1␈↓ ∧`␈ε%1
␈β∀␈↓ ∧2␈ε900␈↓ ∧g␈ε900
␈β~␈↓ ↓H␈ε"satis|ed␈αfor␈αthe␈αpair␈α(␈↓ ∧≡␈ε(u␈↓ ∧D␈ε",␈↓ ∧T␈ε(v␈↓ ∧x␈ε")␈α
=␈α(␈↓ ¬I␈ε(v␈↓ ¬c␈ε6␈␈↓ ε∂␈ε(m␈↓ ε@␈ε",␈ε(␈αεu␈ε"␈αλ+␈ε(␈αλm␈ε6␈απ␈␈↓ πl␈ε(m␈↓ λ≥␈ε").
␈β#␈↓ λ[␈∧#λ[≠∂
␈β&␈↓ ε/␈ε%1␈↓ λ␈ε%1
␈βZ␈↓ α␈ε"Of␈αcourse,␈αa␈αsimilar␈αresult␈αcan␈αbe␈αpro␈α␈v␈α␈ed␈αfor␈αan␈α␈y␈↓ λ∂␈ε(m␈↓ λI␈ε"in␈αplace␈αof␈↓ 	x␈ε(m␈↓ 
(␈ε";␈αand␈αw␈α␈e
␈βf␈↓ λ.␈ε+j␈↓ 
↔␈ε%1
␈β
¬␈↓ ↓H␈ε"could␈α
also␈αreplace␈α
(28)␈α
by␈α
the␈α
condition␈α
\␈ε(a␈ε6␈α∀␈ε(␈αu␈ε"␈α<␈ε(␈αa␈ε"␈αλ+␈ε(␈α	L␈ε6␈α∀␈↓ 	∩␈ε(v␈↓ 	0␈ε"<␈ε(␈αa␈ε"␈αλ+␈ε(␈α	m␈ε""␈αwith
␈β
0␈↓ ↓H␈ε"only␈αmin␈α↓or␈αchanges␈αin␈αthe␈αpro␈α↓of.␈α⊂Therefore␈αTheorem␈αS␈αsh␈α↓o␈α␈ws␈αthat␈αman␈α␈y␈αsimple
␈β
\␈↓ ↓H␈ε"functions␈αcann␈α↓ot␈αbe␈αused␈αto␈αdetermine␈αthe␈αrange␈αof␈αa␈αm␈α↓odular␈αn␈α␈um␈α␈ber.
␈β∞⊃␈↓ α␈ε"Let␈αus␈αn␈α↓o␈α␈w␈αreiterate␈αthe␈αmain␈αpoin␈α␈ts␈αof␈αthe␈αdiscussion␈αin␈αthis␈αsection:␈αMod-
␈β∞=␈↓ ↓H␈ε"ular␈α∩arithmetic␈α∩can␈α∩be␈α∩a␈α∩signi|can␈α␈t␈α∪adv␈α}an␈α␈tage␈α∩for␈α∩applications␈α∩in␈α∩which␈α∩the
␈β∞h␈↓ ↓H␈ε"predominan␈α␈t␈α⊃calculations␈α⊃in␈α␈v␈α␈olv␈α␈e␈α∩exact␈α⊃m␈α␈ultiplication␈α⊃(or␈α∩raising␈α⊃to␈α⊃a␈α⊃po␈α␈w␈α␈er)
␈β∂∪␈↓ ↓H␈ε"of␈α∂large␈α∂in␈α␈tegers,␈α⊃com␈α␈bined␈α∂with␈α∂addition␈α⊂and␈α∂subtraction,␈α⊂but␈α⊂where␈α∂there␈α∂is
␈β∂>␈↓ ↓H␈ε"v␈α␈ery␈α
little␈α∞need␈α
to␈α
divide␈α∞or␈α
compare␈α∞n␈α␈um␈α␈bers,␈ε/␈α∞or␈α
to␈α∞test␈α
whether␈α
in␈α␈termediate
␈β∂i␈↓ ↓H␈ε/results␈α\o␈α␈v␈α␈er⎇o␈α␈w"␈α
out␈αof␈αrange.␈ε"␈α∩(It␈αis␈α
importan␈α␈t␈αn␈α↓ot␈α
to␈αforget␈α
the␈αlatter␈αrestric-
␈β⊂∃␈↓ ↓H␈ε"tion;␈α∞meth␈α↓ods␈α
are␈α∞a␈α␈v␈α}ailable␈α
to␈α∞test␈α∞for␈α
o␈α␈v␈α␈er⎇o␈α␈w,␈α∞as␈α
in␈α∞exercise␈α∞12,␈α
but␈α∞they␈α
are
␈β⊂@␈↓ ↓H␈ε"in␈α⊂general␈α⊃so␈α⊃complicated␈α⊃that␈α⊃they␈α⊂n␈α␈ullify␈α⊃the␈α⊃adv␈α}an␈α␈tages␈α⊃of␈α⊃m␈α↓odular␈α⊂arith-
␈β⊂k␈↓ ↓H␈ε"metic.)␈α∂Sev␈α␈eral␈αapplications␈α
of␈αm␈α↓odular␈α
computations␈αha␈α␈v␈α␈e␈α
been␈α
discussed␈αby␈α
H.
␈β⊃⊗␈↓ ↓H␈ε"T␈α⎇ak␈α}ahasi␈αand␈αY.␈↓ βU␈ε"Ishibashi,␈ε/␈αInformation␈αProc.␈αin␈αJapan␈ε2␈α1␈ε"␈α(1961),␈α28↑42.
␈β∪(

␈β↓U␈↓ ↓H␈ε"276␈↓ 
b␈ε"4.3.2
␈β↓\␈↓ α=␈ε∞ARITH␈α↓MET␈α↓IC
␈βα$␈↓ α␈ε"An␈αexample␈α
of␈αsuch␈α
an␈αapplication␈αis␈α
the␈↓ π!␈ε"exact␈αsolution␈α
of␈αlinear␈αequations
␈βαO␈↓ ↓H␈ε"with␈α∩rational␈α∩coe}cien␈α␈ts.␈α"F␈α⎇or␈α∩v␈α}arious␈α∪reasons␈α∩it␈α∩is␈α∩desirable␈α∩in␈α∩this␈α∩case␈α∩to
␈βαz␈↓ ↓H␈ε"assume␈αthat␈αthe␈αm␈α↓oduli␈↓ ∧G␈ε(m␈↓ ∧w␈ε",␈↓ ¬
␈ε(m␈↓ ¬=␈ε",␈↓ ¬S␈ε".␈αε.␈αε.␈↓ εβ␈ε",␈↓ ε→␈ε(m␈↓ εS␈ε"are␈αall␈αlarge␈αprime␈αn␈α␈um␈α␈bers;␈αthe␈αlinear
␈ββπ␈↓ ∧f␈ε%1␈↓ ¬-␈ε%2␈↓ ε8␈ε+r
␈ββ&␈↓ ↓H␈ε"equations␈α
can␈α
be␈αsolv␈α␈ed␈α
independen␈α␈tly␈α
m␈α↓odulo␈αeach␈↓ πu␈ε(m␈↓ λ$␈ε".␈α∂A␈αdetailed␈α
discussion␈α
of
␈ββ2␈↓ λ∃␈ε+j
␈ββQ␈↓ ↓H␈ε"this␈αprocedure␈αhas␈αbeen␈αgiv␈α␈en␈αby␈αI.␈↓ ¬y␈ε"Borosh␈αand␈αA.␈αS.␈↓ λ∂␈ε"F␈α⎇raenk␈α␈el␈α[␈ε/Math.␈αComp.␈ε2␈α20
␈ββ|␈↓ ↓H␈ε"(1966),␈α
107↑112].␈α∀By␈α
means␈α
of␈α
their␈α
meth␈α↓od,␈α∞the␈α
nine␈α
independen␈α␈t␈α
solutions␈α
of
␈β∧'␈↓ ↓H␈ε"a␈αsystem␈α
of␈α111␈αlinear␈α
equations␈αin␈α
120␈αunkn␈α↓o␈α␈wns␈α
w␈α␈ere␈αobtained␈α
exactly␈αin␈αless
␈β∧R␈↓ ↓H␈ε"than␈α∞one␈α∞h␈α↓our's␈α∞running␈α∂time␈α∞on␈α∞a␈↓ εβ␈ε"CDC␈α∞1604␈α∞computer.␈α↔The␈α∞same␈α∞procedure
␈β∧}␈↓ ↓H␈ε"is␈α
w␈α␈orth␈α␈while␈α∞also␈α
for␈α∞solving␈α∞sim␈α␈ultaneous␈α
linear␈α∞equations␈α
with␈α∞⎇oating␈α
poin␈α␈t
␈β¬)␈↓ ↓H␈ε"coe}cien␈α␈ts,␈α∀when␈α∩the␈α∪matrix␈α∪of␈α∩coe}cien␈α␈ts␈α∪is␈α∩ill-conditioned.␈α$The␈α∩m␈α↓odular
␈β¬T␈↓ ↓H␈ε"technique␈αλ(treating␈α	the␈αλgiv␈α␈en␈α	⎇oating␈αλpoin␈α␈t␈α	coe}cien␈α␈ts␈αλas␈αλexact␈α	rational␈αλn␈α␈um␈α␈bers)
␈β¬␈␈↓ ↓H␈ε"giv␈α␈es␈α⊂a␈α∂meth␈α↓od␈α⊂for␈α⊂obtaining␈α⊂the␈ε/␈α⊂true␈ε"␈α⊂answ␈α␈ers␈α⊂in␈α⊂less␈α⊂time␈α⊂than␈α∂con␈α␈v␈α␈en␈α␈tional
␈βε*␈↓ ↓H␈ε"meth␈α↓ods␈αλcan␈α	produce␈αλreliable␈ε/␈α	appro␈α␈ximate␈ε"␈α	answ␈α␈ers!␈α[See␈α	M.␈α	T.␈↓ 	⊗␈ε"McClellan,␈ε/␈α	JA␈α␈CM
␈βεV␈↓ ↓H␈ε220␈ε"␈α∞(1973),␈α∞563↑588,␈α∂for␈α∞further␈α∞dev␈α␈elopmen␈α␈ts␈α∞of␈α∞this␈α∞approach;␈α∞and␈α∞see␈α∞also␈α∞E.
␈βπ↓␈↓ ↓H␈ε"H.␈↓ ↓{␈ε"Bareiss,␈ε/␈α⊂J.␈α∂Inst.␈α∂Math.␈α∂and␈α∂Appl.␈ε2␈α⊂10␈ε"␈α∂(1972),␈α⊂68↑104,␈α⊂for␈α∂a␈α∂discussion␈α∂of␈α∂its
␈βπ,␈↓ ↓H␈ε"limitations.]
␈βπZ␈↓ α␈ε"The␈α∞published␈α
literature␈α∞concerning␈α
m␈α↓odular␈α∞arithmetic␈α
is␈α∞m␈α↓ostly␈α
orien␈α␈ted
␈βλ¬␈↓ ↓H␈ε"to␈α␈w␈α␈ards␈α
hardw␈α␈are␈α∞design,␈α
since␈α∞the␈α
carry-free␈α∞properties␈α
of␈α∞m␈α↓odular␈α
arithmetic
␈βλ0␈↓ ↓H␈ε"mak␈α␈e␈αλit␈αλattractiv␈α␈e␈αλfrom␈αλthe␈αλstandpoin␈α␈t␈αλof␈αλhigh-speed␈αλoperation.␈α∂The␈αλidea␈αλw␈α␈as␈αλ|rst
␈βλ[␈↓ ↓H␈ε"published␈α
by␈α∞A.␈↓ βQ␈ε"Sv␈α␈oboda␈α
and␈α∞M.␈↓ ¬a␈ε"V␈α⎇alach␈α∞in␈α
the␈α∞Czech␈α↓oslo␈α␈v␈α}akian␈α
journal␈ε/␈α
Stroje
␈β	ε␈↓ ↓H␈ε/na␈αZpraco␈α␈v␈↓ αw␈ε/∞␈↓ αw␈ε/a␈↓ β	␈ε/n␈↓ β→␈ε/∞␈↓ β≥␈ε/␈↓ β2␈ε/Informac␈↓ ∧:␈ε/∞␈↓ ∧>␈ε/␈↓ ∧S␈ε23␈ε"␈α(1955),␈α247↑295;␈αthen␈αindependen␈α␈tly␈αby␈αH.␈αL.␈↓ 
>␈ε"Garner
␈β	,␈↓ 
¬␈ε+e
␈β	2␈↓ ↓H␈ε"[␈ε/IRE␈αT␈α⎇rans.␈ε2␈αEC↑8␈ε"␈α(1959),␈α
140↑147].␈α⊂The␈α
use␈αof␈αm␈α↓oduli␈αof␈α
the␈αform␈↓ 	s␈ε"2␈↓ 
)␈ε6␈␈ε"␈αλ1␈αw␈α␈as
␈β	5␈↓ 
∩␈ε-j
␈β	]␈↓ ↓H␈ε"suggested␈αby␈α
A.␈α
S.␈↓ βy␈ε"F␈α⎇raenk␈α␈el␈α
[␈ε/JA␈α␈CM␈ε2␈α
8␈ε"␈α
(1961),␈α87↑96],␈α
and␈α
sev␈α␈eral␈α
adv␈α}an␈α␈tages␈αof
␈β
λ␈↓ ↓H␈ε"such␈α	m␈α↓oduli␈α	w␈α␈ere␈α	dem␈α↓onstrated␈α	by␈α	A.␈↓ ε~␈ε"Sch␈↓ εR␈ε"∪␈↓ εR␈ε"o␈↓ εd␈ε"nhage␈α	[␈ε/Computing␈ε2␈α	1␈ε"␈α	(1966),␈α	182↑196].
␈β
3␈↓ ↓H␈ε"See␈αthe␈αbo␈α↓ok␈ε/␈αResidue␈αArithmetic␈αand␈αits␈αApplications␈αto␈αComputer␈αT␈α⎇echn␈α↓ology
␈β
↑␈↓ ↓H␈ε"by␈αN.␈αS.␈↓ αT␈ε"Szab␈↓ β≡␈ε"∞␈↓ β≡␈ε"o␈↓ β<␈ε"and␈αR.␈αI.␈↓ ∧S␈ε"T␈α⎇anak␈α}a␈α(New␈αY␈α⎇ork:␈αMcGra␈α␈w-Hill,␈α1967),␈αfor␈αadditional
␈β
␈↓ ↓H␈ε"information␈α
and␈α
a␈α∞comprehensiv␈α␈e␈α
bibliograph␈α␈y␈α
of␈α∞the␈α
subject.␈α∀A␈α
Russian␈α
bo␈α↓ok
␈β-␈↓ ∧5␈ε"~␈↓ π#␈ε"~
␈β5␈↓ ↓H␈ε"published␈α
in␈α
1968␈α
by␈α
I.␈↓ ∧4␈ε"I␈↓ ∧@␈ε"a.␈α∂Akushski␈↓ ¬w␈ε"⊃␈↓ ¬{␈ε"␈↓ ε∂␈ε"and␈α
D.␈αI.␈↓ π"␈ε"I␈↓ π.␈ε"uditski␈↓ λ⊗␈ε"⊃␈↓ λ~␈ε"␈↓ λ.␈ε"includes␈α
a␈α
chapter␈α
about
␈β`␈↓ ↓H␈ε"complex␈αm␈α↓oduli␈α[cf.␈ε/␈αRev.␈αRomaine␈αdes␈αMath.␈ε2␈α15␈ε"␈α(1970),␈α159↑160].
␈β
␈↓ α␈ε"F␈α⎇urther␈αdiscussion␈αof␈αm␈α↓odular␈αarithmetic␈αcan␈αbe␈αfound␈αin␈αSection␈α4.3.3B.
␈β
+␈↓ ↓H␈ε=E␈α␈XERCISES
␈β∞ε␈↓ ↓g␈ε31.␈↓ α␈ε#[␈ε)20␈↓ α;␈ε#]␈α⊗Find␈αall␈αin␈α␈te␈α␈gers␈ε)␈αu␈ε#␈αth␈α␈at␈αsa␈α␈tisf␈α↓y␈αall␈αo␈α␈f␈αthe␈αf␈α↓o␈α␈ll␈α↓o␈α}wi␈α↓n␈α␈g␈αc␈α␈ond␈α␈iti␈α↓o␈α␈ns:␈ε)␈αu␈↓ 
π␈ε#mod␈↓ 
L␈ε#7␈α
=␈α1␈α␈,
␈β∞-␈↓ ↓H␈ε)u␈↓ ↓a␈ε#m␈α␈od␈↓ α%␈ε#11␈α	=␈α	6,␈ε)␈αu␈↓ β8␈ε#mod␈↓ β⎇␈ε#1␈α␈3␈α	=␈α
5␈α␈,␈α0␈ε7␈α	∀␈ε)␈α	u␈ε#␈α
<␈α
1␈α␈00␈α␈0.
␈β∞i␈↓ ↓g␈ε32.␈↓ α␈ε#[␈ε)M2␈α␈0␈↓ α\␈ε#]␈α⊗W␈α}o␈α␈uld␈α
The␈α␈orem␈α
C␈α
stil␈α↓l␈α
be␈α
tru␈α␈e␈α
i␈α↓f␈α
w␈α␈e␈α
all␈α↓o␈α}w␈α␈ed␈ε)␈α
a␈ε#,␈↓ λ-␈ε)u␈↓ λO␈ε#,␈↓ λc␈ε)u␈↓ 	ε␈ε#,␈↓ 	→␈ε#.␈αε.␈αε.␈↓ 	F␈ε#,␈↓ 	Y␈ε)u␈↓ 
¬␈ε#and␈ε)␈α	u␈ε#␈αto␈α
be
␈β∞t␈↓ λ@␈ε&1␈↓ λv␈ε&2␈↓ 	m␈ε,r
␈β∂⊂␈↓ ↓H␈ε#a␈α␈rbitrar␈α␈y␈αreal␈αn␈α␈u␈α␈m␈α␈b␈α␈ers␈α(n␈α↓o␈α␈t␈αjust␈αin␈α␈teg␈α␈ers)?
␈β∂J␈↓ ↓;␈ε↓x
␈β∂L␈↓ ↓c␈ε33.␈↓ α␈ε#[␈ε)M2␈α␈6␈↓ α\␈ε#]␈α⊗(␈ε0Gene␈α␈ralized␈α⊃Chin␈α␈ese␈α⊃Rema␈α␈i␈α↓n␈α␈de␈α␈r␈α∩Th␈α␈eore␈α␈m␈ε#.)␈↓ λ0␈ε#Let␈↓ λs␈ε)m␈↓ 	 ␈ε#,␈↓ 	<␈ε)m␈↓ 	i␈ε#,␈↓ 
¬␈ε#.␈αε.␈αε.␈↓ 
2␈ε#,␈↓ 
N␈ε)m␈↓ ␈ε#be
␈β∂X␈↓ 	⊃␈ε&1␈↓ 	Z␈ε&2␈↓ 
l␈ε,r
␈β∂t␈↓ ↓H␈ε#p␈α␈ositiv␈α␈e␈αi␈α↓n␈α}tege␈α␈rs.␈α⊃Let␈ε)␈αm␈ε#␈αb␈α␈e␈αth␈α␈e␈αleast␈αcom␈α␈m␈α↓on␈αm␈α␈u␈α␈lti␈α↓p␈α␈le␈αof␈↓ λ→␈ε)m␈↓ λF␈ε#,␈↓ λ[␈ε)m␈↓ 	λ␈ε#,␈↓ 	≥␈ε#.␈αε.␈αε.␈↓ 	I␈ε#,␈↓ 	←␈ε)m␈↓ 

␈ε#,␈αand␈αlet␈ε)␈αa␈ε#,
␈β∂␈␈↓ λ7␈ε&1␈↓ λy␈ε&2␈↓ 	|␈ε,r
␈β⊂≠␈↓ ↓H␈ε)u␈↓ ↓j␈ε#,␈↓ ↓␈␈ε)u␈↓ α"␈ε#,␈↓ α6␈ε#.␈αε.␈αε.␈↓ αc␈ε#,␈↓ αw␈ε)u␈↓ β$␈ε#be␈αan␈α}y␈αi␈α↓n␈α}tege␈α␈rs.␈α⊂Pro␈α␈v␈α␈e␈αth␈α␈at␈αthere␈αis␈αexa␈α␈ctly␈αone␈αin␈α␈te␈α␈ger␈ε)␈αu␈ε#␈αth␈α␈at␈αsatis|e␈α␈s
␈β⊂'␈↓ ↓[␈ε&1␈↓ α∩␈ε&2␈↓ β␈ε,r
␈β⊂C␈↓ ↓H␈ε#th␈α␈e␈αco␈α␈nd␈α␈i␈α↓tion␈α␈s
␈β⊃→␈↓ β
␈ε)a␈ε7␈α
∀␈ε)␈α	u␈ε#␈α
<␈ε)␈α	a␈ε#␈απ+␈ε)␈αλm␈ε#,␈ε)␈↓ ¬Ku␈ε7␈α
⊃␈↓ ε∩␈ε)u␈↓ ε=␈ε#(mo␈α␈du␈α␈l␈α↓o␈↓ π>␈ε)m␈↓ πj␈ε#),␈↓ λF1␈ε7␈α	∀␈↓ 	␈ε)j␈↓ 	$␈ε7∀␈↓ 	N␈ε)r␈↓ 	]␈ε#,
␈β⊃%␈↓ ε&␈ε,j␈↓ π\␈ε,j
␈β∪(

␈β↓U␈↓ ↓H␈ε"4.3.2␈↓ 
v␈ε"277
␈β↓\␈↓ π:␈ε∞MOD␈α↓ULAR␈α
ARIT␈α↓HME␈α↓TIC
␈βα&␈↓ ↓H␈ε#p␈α␈ro␈α␈v␈α␈i␈α↓d␈α␈ed␈αth␈α␈at
␈βαv␈↓ ∧L␈ε"(␈↓ π␈ε")
␈βαx␈↓ β7␈ε)u␈↓ β←␈ε7⊃␈↓ ∧	␈ε)u␈↓ ∧X␈ε#modu␈α␈lo␈↓ ¬U␈ε#g␈α␈cd␈↓ επ␈ε#(␈↓ ε∩␈ε)m␈↓ ε;␈ε#,␈↓ εI␈ε)m␈↓ εu␈ε#)␈↓ π␈ε#,␈↓ π]1␈ε7␈α	∀␈ε)␈α
i␈ε#␈α	<␈↓ λa␈ε)j␈↓ λz␈ε7∀␈↓ 	%␈ε)r␈↓ 	4␈ε#;
␈ββ∧␈↓ βJ␈ε,i␈↓ ∧≥␈ε,j␈↓ ε/␈ε,i␈↓ εg␈ε,j
␈ββK␈↓ ↓H␈ε#a␈α␈nd␈α
there␈α
i␈α↓s␈αno␈αsu␈α␈ch␈αin␈α␈te␈α␈ger␈ε)␈αu␈ε#␈αwhen␈α
the␈αlatte␈α␈r␈αcon␈α␈dition␈αfa␈α␈i␈α↓ls␈αto␈αhold␈α␈.
␈β∧↓␈↓ ↓g␈ε34.␈↓ α␈ε#[␈ε)20␈↓ α;␈ε#]␈α⊗Co␈α␈n␈α␈tin␈α␈u␈α␈e␈αthe␈αp␈α␈roc␈α␈ess␈αsh␈α↓o␈α}wn␈αin␈α(13␈α␈);␈αwh␈α␈at␈αw␈α␈ou␈α␈ld␈↓ λ!␈ε)m␈↓ λN␈ε#,␈↓ λb␈ε)m␈↓ 	∂␈ε#,␈↓ 	#␈ε)m␈↓ 	P␈ε#,␈↓ 	e␈ε#.␈α¬.␈αε.␈↓ 
⊗␈ε#be?
␈β∧
␈↓ λ?␈ε&7␈↓ 	␈ε&8␈↓ 	A␈ε&9
␈β∧6␈↓ ↓;␈ε↓x
␈β∧8␈↓ ↓c␈ε35.␈↓ α␈ε#[␈ε)M2␈α␈3␈↓ α\␈ε#]␈α⊗Su␈α␈pp␈α␈ose␈α∞tha␈α␈t␈α∂th␈α␈e␈α∞method␈α∞of␈α∞(13)␈α∞is␈α∂co␈α␈n␈α␈tin␈α␈u␈α␈ed␈α∞u␈α␈n␈α␈til␈α∂no␈α∞m␈α↓ore␈↓ 
⊃␈ε)m␈↓ 
K␈ε#ca␈α␈n␈α∞be
␈β∧D␈↓ 
.␈ε,j
␈β∧`␈↓ ↓H␈ε#c␈α␈h␈α↓os␈α␈en;␈αdoe␈α␈s␈αthis␈αme␈α␈th␈α↓o␈α␈d␈αg␈α␈i␈α↓v␈α}e␈αth␈α␈e␈αlarges␈α␈t␈αattain␈α␈ab␈α␈l␈α↓e␈αv␈α}alue␈↓ λ%␈ε)m␈↓ λR␈ε)m␈↓ 	∧␈ε#.␈αε.␈αε.␈↓ 	1␈ε)m␈↓ 	i␈ε#s␈α␈uch␈αtha␈α␈t␈αthe
␈β∧k␈↓ λC␈ε&1␈↓ λp␈ε&2␈↓ 	N␈ε,r
␈β¬π␈↓ ↓H␈ε)m␈↓ ↓}␈ε#are␈αo␈α␈dd␈α
pos␈α␈i␈α↓tiv␈α␈e␈α
i␈α↓n␈α}teger␈α␈s␈αless␈αth␈α␈an␈α
100␈α
tha␈α␈t␈αare␈αrelativ␈α}el␈α↓y␈α
prime␈αin␈α
pairs?
␈β¬∪␈↓ ↓e␈ε,j
␈β¬8␈↓ λ]␈ε,e␈↓ 	/␈ε,f␈↓ 
\␈ε,g
␈β¬>␈↓ ↓g␈ε36.␈↓ α␈ε#[␈ε)M2␈α␈2␈↓ α\␈ε#]␈α⊗Let␈ε)␈α	e␈ε#,␈↓ βW␈ε)f␈↓ βj␈ε#,␈↓ β⎇␈ε)g␈↓ ∧⊗␈ε#be␈αλn␈α↓o␈α␈nn␈α␈ega␈α␈ti␈α↓v␈α}e␈α	in␈α␈te␈α␈gers.␈α⊂(a)␈α	S␈α␈ho␈α␈w␈α	th␈α␈at␈↓ λM␈ε#2␈↓ λt␈ε7⊃␈↓ 	∨␈ε#2␈↓ 	I␈ε#(␈α↓m␈α␈od␈α␈ulo␈↓ 
K␈ε#2␈↓ 
m␈ε7␈␈ε#␈αβ1␈α␈)
␈β¬e␈↓ ↓H␈ε#if␈αan␈α␈d␈αon␈α␈ly␈αif␈ε)␈αe␈ε7␈α
⊃␈↓ βS␈ε)f␈↓ βp␈ε#(␈α↓m␈α␈od␈α␈ulo␈↓ ∧r␈ε)g␈↓ ¬α␈ε#)␈α↓.␈α→(b)␈αGiv␈α␈en␈α
that␈ε)␈αe␈↓ π!␈ε#m␈α␈od␈↓ πe␈ε)f␈↓ λα␈ε#=␈ε)␈α
d␈ε#␈αan␈α␈d␈ε)␈αce␈↓ 	,␈ε#mod␈↓ 	q␈ε)f␈↓ 
∞␈ε#=␈α
1␈α␈,␈αp␈α␈ro␈α␈v␈α␈e
␈βε
␈↓ ↓H␈ε#th␈α␈at
␈βε0␈↓ ∧∃␈ε,d␈↓ ¬<␈ε&(␈ε,c␈ε:␈␈ε&1)␈ε,d␈↓ εR␈ε,e␈↓ λ≥␈ε,f
␈βε6␈↓ β-␈ε"(␈↓ π+␈ε")
␈βε8␈↓ β9␈ε#(1␈απ+␈↓ ∧∧␈ε#2␈↓ ∧,␈ε#+␈↓ ∧U␈ε7↓␈α¬↓␈αε↓␈↓ ¬β␈ε#+␈↓ ¬,␈ε#2␈↓ ε∪␈ε#)␈ε7␈αλ↓␈ε#␈απ(␈↓ εA␈ε#2␈↓ εg␈ε7␈␈ε#␈αλ1␈α␈)␈↓ π=␈ε#mo␈α␈d␈↓ λ↓␈ε#(␈↓ λ␈ε#2␈↓ λ5␈ε7␈␈ε#␈αλ1)␈α	=␈α
1␈α␈.
␈βεr␈↓ λ}␈ε,e␈↓ 
[␈ε,f
␈βεv␈↓ ↓H␈ε"(
␈βεx␈↓ ↓T␈ε#Th␈α}us,␈α	w␈α␈e␈α	h␈α␈a␈α␈v␈α␈e␈αλa␈α	c␈α␈omp␈α␈arativ␈α}el␈α↓y␈αλsimp␈α␈l␈α↓e␈αλform␈α␈u␈α␈la␈α	for␈αλthe␈αλin␈α␈v␈α␈e␈α␈rse␈α	of␈↓ λm␈ε#2␈↓ 	∞␈ε7␈␈ε#␈αβ1,␈α	m␈α↓od␈α␈ulo␈↓ 
J␈ε#2␈↓ 
o␈ε7␈␈ε#␈αβ1␈α␈,
␈βπ≡␈↓ βY␈ε")
␈βπ ␈↓ ↓H␈ε#a␈α␈s␈αrequ␈α␈i␈α↓r␈α␈ed␈αin␈α(2␈α␈2).
␈βπT␈↓ ↓;␈ε↓x
␈βπV␈↓ ↓c␈ε37.␈↓ α␈ε#[␈ε)M2␈α␈1␈↓ α\␈ε#]␈α⊗Sho␈α␈w␈αtha␈α␈t␈α(23)␈αca␈α␈n␈αb␈α␈e␈αrewritten␈αa␈α␈s␈αfoll␈α↓o␈α}ws:
␈βλ#␈↓ ↓a␈ε)v␈↓ α
␈ε7␈ ␈↓ α5␈ε)u␈↓ α]␈ε#mo␈α␈d␈↓ β!␈ε)m␈↓ βN␈ε#,
␈βλ/␈↓ ↓r␈ε&1␈↓ αH␈ε&1␈↓ β?␈ε&1
␈βλY␈↓ ↓a␈ε)v␈↓ α
␈ε7␈ ␈ε#␈α
(␈↓ α@␈ε)u␈↓ αj␈ε7␈␈↓ β∩␈ε)v␈↓ β2␈ε#)␈↓ βC␈ε)c␈↓ βt␈ε#m␈α␈od␈↓ ∧8␈ε)m␈↓ ∧e␈ε#,
␈βλe␈↓ ↓r␈ε&2␈↓ αS␈ε&2␈↓ β#␈ε&1␈↓ βQ␈ε&12␈↓ ∧V␈ε&2
␈β	
␈↓ α5␈ε"(␈↓ ∧F␈ε")
␈β	∂␈↓ ↓a␈ε)v␈↓ α
␈ε7␈ ␈↓ αA␈ε)u␈↓ αk␈ε7␈␈ε#␈απ(␈↓ β≡␈ε)v␈↓ βE␈ε#+␈↓ βn␈ε)m␈↓ ∧≠␈ε)v␈↓ ∧;␈ε#)␈↓ ∧W␈ε)c␈↓ ¬β␈ε)c␈↓ ¬3␈ε#mod␈↓ ¬x␈ε)m␈↓ ε%␈ε#,
␈β	≠␈↓ ↓r␈ε&3␈↓ αT␈ε&3␈↓ β/␈ε&1␈↓ ∧␈ε&1␈↓ ∧+␈ε&2␈↓ ∧f␈ε&1␈α␈3␈↓ ¬⊃␈ε&23␈↓ ε⊗␈ε&3
␈β	<␈↓ ↓x␈ε#.
␈β	K␈↓ ↓x␈ε#.
␈β	Y␈↓ ↓x␈ε#.
␈β

␈↓ α5␈ε"(␈↓ λA␈ε")
␈β
∂␈↓ ↓b␈ε)v␈↓ α
␈ε7␈ ␈↓ αA␈ε)u␈↓ αj␈ε7␈␈ε#␈απ(␈↓ β≥␈ε)v␈↓ βD␈ε#+␈↓ βm␈ε)m␈↓ ∧~␈ε#(␈↓ ∧%␈ε)v␈↓ ∧L␈ε#+␈↓ ∧u␈ε)m␈↓ ¬"␈ε#(␈↓ ¬-␈ε)v␈↓ ¬T␈ε#+␈↓ ¬|␈ε7↓␈αε↓␈αε↓␈↓ ε+␈ε#+␈↓ εS␈ε)m␈↓ π'␈ε)v␈↓ πn␈ε#)␈↓ π␈␈ε#.␈αε.␈α¬.␈↓ λ+␈ε#))␈↓ λS␈ε)c␈↓ 	β␈ε#.␈αε.␈α¬.␈↓ 	/␈ε)c␈↓ 
→␈ε#mod␈↓ 
↑␈ε)m␈↓ 
␈ε#.
␈β
≠␈↓ ↓s␈ε,r␈↓ αT␈ε,r␈↓ β.␈ε&1␈↓ ∧␈ε&1␈↓ ∧5␈ε&2␈↓ ¬∩␈ε&2␈↓ ¬=␈ε&3␈↓ εq␈ε,r␈↓ ε}␈ε:␈␈ε&2␈↓ π8␈ε,r␈↓ πE␈ε:␈␈ε&1␈↓ λa␈ε&1␈↓ λo␈ε,r␈↓ 	>␈ε&(␈↓ 	G␈ε,r␈↓ 	T␈ε:␈␈ε&1)␈↓ 
ε␈ε,r␈↓ 
{␈ε,r
␈β
↑␈↓ ↓H␈ε#If␈α⊂th␈α␈e␈α⊂fo␈α␈rm␈α␈ula␈α␈s␈α⊂are␈α∂rewritten␈α∂in␈α⊂th␈α␈is␈α⊂w␈α␈a␈α␈y␈α␈,␈α∩w␈α␈e␈α∂see␈α⊂t␈α␈hat␈α∂on␈α␈l␈α↓y␈↓ λW␈ε)r␈↓ λq␈ε7␈␈ε#␈α1␈α∂co␈α␈nsta␈α␈n␈α␈ts␈↓ 
U␈ε)C␈↓ ␈ε#=
␈β
i␈↓ 
l␈ε,j
␈β¬␈↓ ↓H␈ε)c␈↓ ↓w␈ε#.␈αε.␈αε.␈↓ α$␈ε)c␈↓ β
␈ε#mo␈α␈d␈↓ βQ␈ε)m␈↓ ∧π␈ε#are␈α
n␈α␈eede␈α␈d␈α
i␈α↓n␈α␈stea␈α␈d␈α
of␈↓ εD␈ε)r␈↓ εT␈ε#(␈↓ ε←␈ε)r␈↓ εt␈ε7␈␈ε#␈αε1)/2␈α
co␈α␈nsta␈α␈n␈α␈ts␈↓ λu␈ε)c␈↓ 	&␈ε#a␈α␈s␈αin␈α
(2␈α␈3).␈α∂Discus␈α␈s
␈β⊃␈↓ ↓V␈ε&1␈↓ ↓d␈ε,j␈↓ βo␈ε,j␈↓ 	∧␈ε,i␈↓ 	
␈ε,j
␈β∩␈↓ α2␈ε&(␈↓ α;␈ε,j␈↓ αH␈ε:␈␈ε&1)␈↓ αz␈ε,j
␈β-␈↓ ↓H␈ε#th␈α␈e␈αrelativ␈α␈e␈αme␈α␈ri␈α↓ts␈αo␈α␈f␈αth␈α␈i␈α↓s␈αv␈α}ersion␈αo␈α␈f␈αth␈α␈e␈αf␈α↓o␈α␈rm␈α␈u␈α␈l␈α↓a␈αa␈α␈s␈αc␈α␈omp␈α␈ared␈α
to␈α(23),␈αf␈α↓ro␈α␈m␈αthe␈αsta␈α␈nd␈α␈-
␈βU␈↓ ↓H␈ε#p␈α␈oin␈α␈t␈αo␈α␈f␈αc␈α␈omp␈α␈ute␈α␈r␈αc␈α␈alcula␈α␈ti␈α↓o␈α␈n.
␈β␈↓ ↓g␈ε38.␈↓ α␈ε#[␈ε)M2␈α␈1␈↓ α\␈ε#]␈α⊗Pro␈α␈v␈α␈e␈αth␈α␈at␈αth␈α␈e␈αn␈α␈u␈α␈m␈α␈be␈α␈r␈ε)␈αu␈ε#␈αd␈α␈e|n␈α␈ed␈αb␈α␈y␈α(23␈α␈)␈αand␈α
(24)␈αsa␈α␈ti␈α↓s|␈α␈es␈α(25␈α␈).
␈βB␈↓ ↓g␈ε39.␈↓ α␈ε#[␈ε)M2␈α␈0␈↓ α\␈ε#]␈α⊗Sho␈α␈w␈α
h␈α↓o␈α}w␈α∞to␈αgo␈α
from␈α
th␈α␈e␈α
v␈α}a␈α␈l␈α↓u␈α␈es␈↓ εj␈ε)v␈↓ π
␈ε#,␈↓ π!␈ε#.␈αε.␈α¬.␈↓ πM␈ε#,␈↓ πd␈ε)v␈↓ λ⊂␈ε#of␈α
th␈α␈e␈α
mixed␈α␈-rad␈α␈i␈α↓x␈αn␈α↓o␈α␈tation
␈βM␈↓ ε{␈ε&1␈↓ πu␈ε,r
␈βi␈↓ ↓H␈ε#(2␈α␈4)␈α	bac␈α␈k␈α	to␈α	th␈α␈e␈α
o␈α␈rigina␈α␈l␈α
resid␈α␈ues␈↓ ¬'␈ε)u␈↓ ¬J␈ε#,␈↓ ¬]␈ε#.␈α¬.␈αε.␈↓ ε	␈ε#,␈↓ ε≤␈ε)u␈↓ ε=␈ε#,␈α
using␈αλonly␈α	a␈α␈ri␈α↓th␈α␈metic␈α	m␈α↓o␈α␈d␈↓ 	U␈ε)m␈↓ 

␈ε#to␈αλcomp␈α␈ute
␈βu␈↓ ¬:␈ε&1␈↓ ε/␈ε,r␈↓ 	s␈ε,j
␈β
⊃␈↓ ↓H␈ε#th␈α␈e␈αv␈α}a␈α␈l␈α↓u␈α␈e␈αof␈↓ α}␈ε)u␈↓ β∨␈ε#.
␈β
≥␈↓ β⊃␈ε,j
␈β
H␈↓ ↓V␈ε310.␈↓ α␈ε#[␈ε)M2␈α␈5␈↓ α\␈ε#]␈α⊗An␈αin␈α␈teg␈α␈er␈ε)␈αu␈ε#␈αtha␈α␈t␈αlies␈αin␈αthe␈αsy␈α␈mmetrica␈α␈l␈αran␈α␈ge␈α(10␈α␈)␈αm␈α␈i␈α↓g␈α␈h␈α␈t␈αbe␈αrep␈α␈resen␈α}ted
␈β
o␈↓ ↓H␈ε#b␈α␈y␈α∞|n␈α␈ding␈α∞th␈α␈e␈α∂n␈α␈u␈α␈m␈α␈b␈α␈ers␈↓ ∧3␈ε)u␈↓ ∧U␈ε#,␈↓ ∧n␈ε#.␈αε.␈αε.␈↓ ¬≠␈ε#,␈↓ ¬4␈ε)u␈↓ ¬d␈ε#su␈α␈ch␈α∞tha␈α␈t␈ε)␈α∂u␈ε7␈α⊂⊃␈↓ πR␈ε)u␈↓ λβ␈ε#(mo␈α␈du␈α␈l␈α↓o␈↓ 	∧␈ε)m␈↓ 	0␈ε#)␈α∂a␈α␈nd␈ε7␈α∞␈␈↓ 
/␈ε)m␈↓ 
[␈ε#/␈α␈2␈α∂<
␈β
{␈↓ ∧F␈ε&1␈↓ ¬G␈ε,r␈↓ πf␈ε,j␈↓ 	"␈ε,j␈↓ 
M␈ε,j
␈β∞↔␈↓ ↓H␈ε)u␈↓ ↓r␈ε#<␈↓ α≥␈ε)m␈↓ αH␈ε#/2␈α␈,␈αinste␈α␈ad␈α
o␈α␈f␈αinsistin␈α␈g␈α
tha␈α␈t␈α0␈ε7␈α	∀␈↓ ε#␈ε)u␈↓ εN␈ε#<␈↓ εx␈ε)m␈↓ π.␈ε#a␈α␈s␈αin␈α
th␈α␈e␈α
tex␈α␈t.␈α∂Discuss␈α
th␈α␈e␈α
m␈α↓od␈α␈ula␈α␈r
␈β∞"␈↓ ↓[␈ε,j␈↓ α:␈ε,j␈↓ ε7␈ε,j␈↓ π⊗␈ε,j
␈β∞>␈↓ ↓H␈ε#a␈α␈rithme␈α␈ti␈α↓c␈αλp␈α␈roced␈α␈ure␈α␈s␈α	th␈α␈at␈αλw␈α␈ould␈αλb␈α␈e␈αλapp␈α␈rop␈α␈riate␈αλi␈α↓n␈απcon␈α␈nect␈α␈i␈α↓o␈α␈n␈αλwi␈α↓th␈απsuch␈αλa␈αλsy␈α␈mmetr␈α␈i␈α↓ca␈α␈l
␈β∞d␈↓ β!␈ε"(␈↓ πL␈ε")
␈β∞f␈↓ ↓H␈ε#re␈α␈prese␈α␈n␈α␈tatio␈α␈n␈↓ β-␈ε#inclu␈α␈ding␈α
the␈αc␈α␈on␈α␈v␈α}ersion␈αp␈α␈roc␈α␈ess,␈α(2␈α␈3)␈↓ πX␈ε#.
␈β∂≥␈↓ ↓V␈ε311.␈↓ α␈ε#[␈ε)M2␈α␈3␈↓ α\␈ε#]␈α⊗Assum␈α␈e␈α∞th␈α␈at␈α
all␈α∞th␈α␈e␈↓ ¬/␈ε)m␈↓ ¬h␈ε#a␈α␈re␈α∞o␈α␈dd␈α␈,␈α∂a␈α␈nd␈α
th␈α␈at␈ε)␈α
u␈ε#␈α∞=␈α
(␈↓ λW␈ε)u␈↓ λy␈ε#,␈↓ 	λ␈ε#.␈αε.␈αε.␈↓ 	4␈ε#,␈↓ 	C␈ε)u␈↓ 	e␈ε#)␈α
i␈α↓s␈α
kno␈α␈wn␈α
to
␈β∂(␈↓ ¬L␈ε,j␈↓ λj␈ε&1␈↓ 	W␈ε,r
␈β∂D␈↓ ↓H␈ε#b␈α␈e␈α∞ev␈α}en,␈α∂wh␈α␈ere␈α∞0␈ε7␈α
∀␈ε)␈α∂u␈ε#␈α∞<␈ε)␈α∞m␈ε#.␈α↔F␈α↓in␈α␈d␈α∞a␈α
reaso␈α␈nab␈α␈ly␈α∞fast␈α
method␈α
to␈α∞co␈α␈mpu␈α␈te␈ε)␈α∞u␈ε#/2␈α∞u␈α␈sing
␈β∂l␈↓ ↓H␈ε#mod␈α␈ular␈αarith␈α␈metic.
␈β⊂"␈↓ ↓V␈ε312.␈↓ α␈ε#[␈ε)M1␈α␈0␈↓ α\␈ε#]␈α⊗Pro␈α␈v␈α␈e␈α∂th␈α␈at,␈α⊂if␈α∂0␈ε7␈α∂∀␈ε)␈α⊂u␈ε#␈α↓,␈↓ ¬J␈ε)v␈↓ ¬k␈ε#<␈ε)␈α⊂m␈ε#,␈α⊂th␈α␈e␈α∂m␈α↓o␈α␈du␈α␈l␈α↓a␈α␈r␈α∂ad␈α␈dition␈α∞of␈ε)␈α∂u␈ε#␈α⊂a␈α␈nd␈↓ 
1␈ε)v␈↓ 
R␈ε#ca␈α␈use␈α␈s
␈β⊂J␈↓ ↓H␈ε#o␈α}v␈α␈er⎇␈α␈o␈α␈w␈α(i.␈α↓e␈α␈.␈α↓,␈αis␈αou␈α␈tsi␈α↓d␈α␈e␈αth␈α␈e␈αran␈α␈ge␈αa␈α␈ll␈α↓o␈α}we␈α␈d␈αb␈α␈y␈αth␈α␈e␈αm␈α↓o␈α␈du␈α␈l␈α↓a␈α␈r␈αrep␈α␈resen␈α␈t␈α␈ation␈α␈)␈α
if␈αan␈α␈d␈αonly
␈β⊂r␈↓ ↓H␈ε#if␈α
the␈α
su␈α␈m␈α
is␈α∞less␈α
th␈α␈an␈ε)␈α
u␈ε#.␈α≡(Th␈α␈u␈α␈s␈α
the␈α
o␈α}v␈α␈er⎇␈α␈o␈α␈w␈α
dete␈α␈ction␈α
p␈α␈rob␈α␈l␈α↓e␈α␈m␈α
i␈α↓s␈α
eq␈α␈uiv␈α}alen␈α}t␈α
to␈α
the
␈β⊃→␈↓ ↓H␈ε#c␈α␈omp␈α␈arison␈α
prob␈α␈lem.)
␈β∪(

␈β↓U␈↓ ↓H␈ε"278␈↓ 
b␈ε"4.3.2
␈β↓\␈↓ α=␈ε∞ARITH␈α↓MET␈α↓IC
␈βα#␈↓ ↓;␈ε↓x
␈βα%␈↓ ↓S␈ε31␈α␈3.␈↓ α␈ε#[␈ε)M2␈α␈5␈↓ α\␈ε#]␈α⊗(␈↓ βε␈ε0Automorp␈α␈hic␈αn␈α␈u␈α␈m␈α␈ber␈α␈s.␈ε#␈α↓)␈α≤An␈ε)␈αn␈ε#-plac␈α␈e␈α
d␈α␈ecima␈α␈l␈α
n␈α␈u␈α␈m␈α␈be␈α␈r␈ε)␈α
x␈ε#␈α>␈α1␈αis␈α
c␈α␈all␈α↓e␈α␈d␈αan
␈βαG␈↓ 	<␈ε&2
␈βαM␈↓ ↓H␈ε#\␈α␈au␈α␈tom␈α↓o␈α␈rph␈α␈"␈αb␈α␈y␈αrec␈α␈reation␈α␈al␈αma␈α␈them␈α␈atician␈α␈s␈αif␈αthe␈αla␈α␈st␈ε)␈αn␈ε#␈α
d␈α␈igits␈αof␈↓ 	*␈ε)x␈↓ 	W␈ε#are␈αequ␈α␈al␈αto␈ε)␈αx␈ε#␈α␈.
␈βαo␈↓ πk␈ε&2
␈βαt␈↓ ↓H␈ε#F␈α⎇or␈α
exa␈α␈mple,␈α∞937␈α␈6␈α∞is␈α
a␈α∞4␈α␈-␈α↓p␈α␈lace␈α
au␈α␈tom␈α↓o␈α␈rph␈α␈,␈α∂sinc␈α␈e␈α∞93␈α␈7␈↓ πZ␈ε#6␈↓ λπ␈ε#=␈α∞879␈α␈09␈α␈376␈α␈.␈α∨[See␈ε0␈α
Sc␈α␈i␈α↓e␈α␈n␈α␈ti|c
␈ββ≤␈↓ ↓H␈ε0Am␈α␈erican␈ε3␈α2␈α␈18␈ε#␈α(J␈α␈an␈α␈u␈α␈ary␈α
196␈α␈8),␈α125␈α␈.␈α↓]
␈ββG␈↓ 
V␈ε,n
␈ββL␈↓ ↓e␈ε#a)␈↓ α␈ε#Pro␈α␈v␈α␈e␈α
th␈α␈at␈α
an␈ε)␈α
n␈ε#-plac␈α␈e␈αn␈α}um␈α}ber␈ε)␈α
x␈ε#␈α	>␈α	1␈α
i␈α↓s␈α
an␈α	auto␈α␈m␈α↓or␈α␈ph␈α
if␈αa␈α␈nd␈α
o␈α␈nly␈α
if␈ε)␈αx␈↓ 
↓␈ε#m␈α␈od␈↓ 
E␈ε#5␈↓ 
q␈ε#=␈α
0
␈ββn␈↓ ∧↓␈ε,n␈↓ 	β␈ε,n␈↓ 
W␈ε,n
␈ββr␈↓ π∧␈ε"(
␈ββt␈↓ α␈ε#or␈α1␈αan␈α␈d␈ε)␈αx␈↓ β,␈ε#mo␈α␈d␈↓ βp␈ε#2␈↓ ∧≡␈ε#=␈α1␈αo␈α␈r␈α0,␈αresp␈α␈ectiv␈α␈ely␈α␈.␈↓ π⊂␈ε#Th␈α}us,␈αif␈↓ λ∞␈ε)m␈↓ λF␈ε#=␈↓ λr␈ε#2␈↓ 	!␈ε#a␈α␈nd␈↓ 	b␈ε)m␈↓ 
~␈ε#=␈↓ 
F␈ε#5␈↓ 
i␈ε#,␈αthe
␈ββ␈␈↓ λ,␈ε&1␈↓ 
␈ε&2
␈β∧→␈↓ 	F␈ε")
␈β∧≠␈↓ α␈ε#on␈α␈ly␈αt␈α␈w␈α␈o␈ε)␈αn␈ε#-place␈αa␈α␈uto␈α␈m␈α↓orp␈α␈hs␈αa␈α␈re␈αthe␈αn␈α}um␈α}bers␈↓ π7␈ε)M␈↓ πs␈ε#a␈α␈nd␈↓ λ3␈ε)M␈↓ λo␈ε#in␈α(7).
␈β∧'␈↓ πX␈ε&1␈↓ λU␈ε&2
␈β∧=␈↓ πb␈ε&2␈↓ λD␈ε&3␈↓ 	J␈ε&2␈ε,n
␈β∧C␈↓ ↓c␈ε#b)␈↓ α␈ε#Pro␈α␈v␈α␈e␈αt␈α␈hat␈αif␈ε)␈αx␈ε#␈αis␈αan␈ε)␈αn␈ε#-pla␈α␈ce␈αau␈α␈tom␈α↓o␈α␈rph␈α␈,␈αth␈α␈en␈α(3␈↓ πO␈ε)x␈↓ πx␈ε7␈␈ε#␈αλ2␈↓ λ2␈ε)x␈↓ λT␈ε#)␈↓ λd␈ε#mod␈↓ 	)␈ε#1␈↓ 	9␈ε#0␈↓ 	u␈ε#is␈αa␈α
2␈ε)n␈ε#-place
␈β∧k␈↓ α␈ε#au␈α␈tomorph␈α␈.
␈β¬
␈↓ 
β␈ε:0
␈β¬∩␈↓ ↓g␈ε#c)␈↓ α␈ε#Giv␈α␈en␈αth␈α␈at␈ε)␈αc␈α↓x␈ε7␈α⊃␈ε#␈α1␈α(mod␈α␈ulo␈↓ ¬/␈ε)y␈↓ ¬@␈ε#),␈α∞|␈α␈nd␈αa␈αsimp␈α␈l␈α↓e␈αform␈α}ula␈αf␈α↓o␈α␈r␈α
a␈αn␈α␈u␈α␈m␈α␈b␈α␈er␈↓ 	u␈ε)c␈↓ 
_␈ε#dep␈α␈end␈α␈ing
␈β¬4␈↓ ε"␈ε:0␈↓ ε=␈ε&2␈↓ λ-␈ε&2
␈β¬:␈↓ α␈ε#on␈ε)␈α
c␈ε#␈αa␈α␈nd␈ε)␈α
x␈ε#␈αbu␈α␈t␈αn␈α↓o␈α␈t␈αon␈↓ ∧Z␈ε)y␈↓ ∧k␈ε#,␈αsu␈α␈ch␈α
that␈↓ ε∀␈ε)c␈↓ ε+␈ε)x␈↓ εV␈ε7⊃␈ε#␈α	1␈α	(mod␈α␈ulo␈↓ λ≤␈ε)y␈↓ λ=␈ε#).
␈βε0␈↓ ↓4␈ε=*␈↓ ↓H␈ε=4␈α␈.3.3.␈α∩Ho␈α}w␈α
F␈α⎇ast␈α∞Can␈α
W␈α⎇e␈α
M␈α␈ul␈α↓tipl␈α↓y?
␈βεp␈↓ ↓H␈ε"The␈α⊗con␈α␈v␈α␈en␈α␈tional␈α↔meth␈α↓od␈α↔for␈↓ ¬H␈ε"m␈α␈ultiplication␈α⊗in␈α↔positional␈α↔n␈α␈um␈α␈ber␈α⊗systems,
␈βπ≤␈↓ ↓H␈ε"Algorithm␈α	4.3.1M,␈αλrequires␈α	appro␈α␈ximately␈ε(␈α	c␈α↓m␈α␈n␈ε"␈α	operations␈α	to␈α	m␈α␈ultiply␈α	an␈ε(␈α	m␈ε"␈α␈-digit
␈βπG␈↓ ↓H␈ε"n␈α␈um␈α␈ber␈αλby␈α	an␈ε(␈α	n␈ε"␈α␈-digit␈α	n␈α␈um␈α␈ber,␈α	where␈ε(␈α	c␈ε"␈α	is␈α	a␈αλconstan␈α␈t.␈α∂In␈α	this␈α	section,␈α	let␈α	us␈αλassume
␈βπr␈↓ ↓H␈ε"for␈α∞con␈α␈v␈α␈enience␈α∂that␈ε(␈α∂m␈ε"␈α∞=␈ε(␈α∞n␈ε",␈α∂and␈α∂let␈α∂us␈α∞consider␈α∂the␈α∞follo␈α␈wing␈α∂question:␈ε/␈α⊃Does
␈βλ≥␈↓ ↓H␈ε/ev␈α␈ery␈α∞general␈α∂computer␈α∂algorithm␈α∞for␈α∂m␈α␈ultiplying␈α∂t␈α␈w␈α␈o␈ε(␈α∞n␈ε/-digit␈α∂n␈α␈um␈α␈bers␈α∞require
␈βλB␈↓ ¬⎇␈ε%2
␈βλH␈↓ ↓H␈ε/an␈αexecution␈αtime␈αproportional␈αto␈↓ ¬h␈ε(n␈↓ ε∞␈ε/,␈αas␈ε(␈αn␈ε/␈αincreases?
␈βλt␈↓ α␈ε"(In␈α	this␈αλquestion,␈α
a␈α	\general"␈αλalgorithm␈α	means␈α	one␈αλthat␈α	accepts,␈α	as␈α	input,␈α	the
␈β	∨␈↓ ↓H␈ε"n␈α␈um␈α␈ber␈ε(␈α
n␈ε"␈αand␈α
t␈α␈w␈α␈o␈α
arbitrary␈ε(␈α
n␈ε"-digit␈α
n␈α␈um␈α␈bers␈α
in␈αpositional␈α
n␈α↓otation,␈α∞and␈αwh␈α↓ose
␈β	J␈↓ ↓H␈ε"output␈α	is␈α	their␈α
product␈α	in␈α
positional␈α	form.␈α∂Certainly␈α	if␈α
w␈α␈e␈α	w␈α␈ere␈α
allo␈α␈w␈α␈ed␈α	to␈α	ch␈α↓o␈α↓ose
␈β	u␈↓ ↓H␈ε"a␈α
di{eren␈α␈t␈α∞algorithm␈α∞for␈α
each␈α∞v␈α}alue␈α∞of␈ε(␈α
n␈ε",␈α∞the␈α∞question␈α∞w␈α␈ould␈α
be␈α∞of␈α∞n␈α↓o␈α
in␈α␈terest,
␈β
 ␈↓ ↓H␈ε"since␈α
m␈α␈ultiplication␈α	could␈α
be␈α
done␈α
for␈α
an␈α␈y␈α
speci|c␈α
v␈α}alue␈α
of␈ε(␈α
n␈ε"␈α
by␈α
a␈α	\table-lo␈α↓okup"
␈β
L␈↓ ↓H␈ε"operation␈α	in␈α
some␈α
h␈α␈uge␈α	table.␈α⊂The␈α	term␈α
\computer␈α
algorithm"␈α	is␈α
mean␈α␈t␈α
to␈α	imply
␈β
w␈↓ ↓H␈ε"an␈α
algorithm␈α
that␈α
is␈α
suitable␈α
for␈α
implemen␈α␈tation␈α
on␈α
a␈αdigital␈α
computer␈α
such␈α
as
␈β"␈↓ α␈ε",␈α
and␈αthe␈αexecution␈αtime␈αis␈α
to␈αbe␈αthe␈αtime␈αit␈α
tak␈α␈es␈αto␈αperform␈αthe␈αalgorithm
␈β$␈↓ ↓H␈ε5MI␈α␈X
␈βM␈↓ ↓H␈ε"on␈αsuch␈αa␈αcomputer.)
␈β
␈↓ ↓H␈ε2A.␈α∞Digital␈α∂meth␈α↓ods.␈ε"␈α≥The␈α∂answ␈α␈er␈α∞to␈α∂the␈α∞abo␈α␈v␈α␈e␈α∞question␈α∂is,␈α∂rather␈α∞surprisingly,
␈β5␈↓ ↓H␈ε"\No,"␈α∂and,␈α∂in␈α∂fact,␈α∂it␈α∂is␈α∞n␈α↓ot␈α∂v␈α␈ery␈α∞di}cult␈α∂to␈α∂see␈α∞wh␈α␈y.␈α_F␈α⎇or␈α∂con␈α␈v␈α␈enience,␈α∂let␈α∞us
␈β`␈↓ ↓H␈ε"assume␈α
through␈α↓out␈α
this␈α∞section␈α
that␈α
w␈α␈e␈α∞are␈α
w␈α␈orking␈α
with␈α∞in␈α␈tegers␈α
expressed␈α
in
␈β
␈↓ ↓H␈ε"binary␈αn␈α↓otation.␈α⊂If␈αw␈α␈e␈αha␈α␈v␈α␈e␈αt␈α␈w␈α␈o␈α2␈ε(n␈ε"␈α␈-bit␈αn␈α␈um␈α␈bers␈ε(␈αu␈ε"␈α
=␈α
(␈↓ λ_␈ε(u␈↓ 	β␈ε".␈αε.␈αε.␈↓ 	3␈ε(u␈↓ 	X␈ε(u␈↓ 	}␈ε")␈↓ 
&␈ε"and␈↓ 
l␈ε(v␈↓ λ␈ε"=
␈β
_␈↓ λ-␈ε%2␈ε+n␈ε9␈α␈␈␈ε%1␈↓ 	H␈ε%1␈↓ 	m␈ε%0␈↓ 

␈ε%2
␈β
7␈↓ ↓H␈ε"(␈↓ ↓T␈ε(v␈↓ α;␈ε".␈αε.␈αε.␈↓ αk␈ε(v␈↓ β∞␈ε(v␈↓ β0␈ε")␈↓ βM␈ε",␈αw␈α␈e␈αcan␈αwrite
␈β
C␈↓ ↓e␈ε%2␈ε+n␈ε9␈␈ε%1␈↓ α⎇␈ε%1␈↓ β∨␈ε%0␈↓ β<␈ε%2
␈β
|␈↓ ∧r␈ε+n␈↓ πB␈ε+n
␈β∞∧␈↓ ∧∪␈ε(u␈ε"␈α
=␈↓ ∧`␈ε"2␈↓ ¬ε␈ε(U␈↓ ¬7␈ε"+␈↓ ¬c␈ε(U␈↓ ε
␈ε",␈↓ εe␈ε(v␈↓ πα␈ε"=␈↓ π0␈ε"2␈↓ πV␈ε(V␈↓ λ¬␈ε"+␈↓ λ1␈ε(V␈↓ λW␈ε",␈↓ α␈ε"(1)
␈β∞⊂␈↓ ¬∨␈ε%1␈↓ ¬|␈ε%0␈↓ πl␈ε%1␈↓ λF␈ε%0
␈β∞Q␈↓ ↓H␈ε"where␈↓ α0␈ε(U␈↓ αe␈ε"=␈α(␈↓ β!␈ε(u␈↓ ∧␈ε".␈αε.␈αε.␈↓ ∧<␈ε(u␈↓ ∧e␈ε")␈↓ ¬∞␈ε"is␈α
the␈α
\m␈α↓ost␈α
signi|can␈α␈t␈α
half"␈αof␈α
the␈α
n␈α␈um␈α␈ber␈ε(␈α
u␈ε"␈αand
␈β∞]␈↓ αI␈ε%1␈↓ β6␈ε%2␈ε+n␈ε9␈α␈␈␈ε%1␈↓ ∧P␈ε+n␈↓ ∧q␈ε%2
␈β∞|␈↓ ↓H␈ε(U␈↓ ↓{␈ε"=␈α
(␈↓ α5␈ε(u␈↓ β⊃␈ε".␈αε.␈αε.␈↓ βA␈ε(u␈↓ βf␈ε")␈↓ ∧
␈ε"is␈α	the␈α	\least␈α
signi|can␈α␈t␈α	half";␈α
similarly␈↓ λh␈ε(V␈↓ 	_␈ε"=␈α
(␈↓ 	R␈ε(v␈↓ 
:␈ε".␈αε.␈αε.␈↓ 
j␈ε(v␈↓ ⊂␈ε")
␈β∂	␈↓ ↓`␈ε%0␈↓ αJ␈ε+n␈ε9␈␈ε%␈α␈1␈↓ βV␈ε%0␈↓ βr␈ε%2␈↓ λ⎇␈ε%1␈↓ 	d␈ε%2␈ε+n␈ε9␈␈ε%␈α␈1␈↓ 
{␈ε+n␈↓ ≤␈ε%2
␈β∂'␈↓ ↓H␈ε"and␈↓ α∞␈ε(V␈↓ α>␈ε"=␈α
(␈↓ αx␈ε(v␈↓ βQ␈ε".␈αε.␈αε.␈↓ ∧↓␈ε(v␈↓ ∧#␈ε")␈↓ ∧@␈ε".␈α⊂No␈α␈w␈αw␈α␈e␈αha␈α␈v␈α␈e
␈β∂4␈↓ α#␈ε%0␈↓ β
␈ε+n␈ε9␈α␈␈␈ε%1␈↓ ∧∩␈ε%0␈↓ ∧/␈ε%2
␈β∂m␈↓ β:␈ε%2␈ε+n␈↓ ∧#␈ε+n␈↓ ¬Y␈ε+n␈↓ λx␈ε+n
␈β∂u␈↓ α<␈ε(u␈↓ αQ␈ε(v␈↓ αn␈ε"=␈α
(␈↓ β(␈ε"2␈↓ βe␈ε"+␈↓ ∧⊃␈ε"2␈↓ ∧7␈ε")␈↓ ∧C␈ε(U␈↓ ∧m␈ε(V␈↓ ¬≠␈ε"+␈↓ ¬G␈ε"2␈↓ ¬n␈ε"(␈↓ ¬z␈ε(U␈↓ ε+␈ε6␈␈↓ εW␈ε(U␈↓ π↓␈ε")(␈↓ π→␈ε(V␈↓ πG␈ε6␈␈↓ πs␈ε(V␈↓ λ~␈ε")␈αλ+␈αλ(␈↓ λf␈ε"2␈↓ 	∀␈ε"+␈αλ1)␈↓ 	↑␈ε(U␈↓ 
λ␈ε(V␈↓ 
.␈ε".␈↓ α␈ε"(2)
␈β⊂↓␈↓ ∧\␈ε%1␈↓ ¬β␈ε%1␈↓ ε∩␈ε%1␈↓ εp␈ε%0␈↓ π.␈ε%0␈↓ λ	␈ε%1␈↓ 	w␈ε%0␈↓ 
≥␈ε%0
␈β⊂B␈↓ ↓H␈ε"This␈αform␈α␈ula␈αreduces␈αthe␈αproblem␈αof␈αm␈α␈ultiplying␈α2␈ε(n␈ε"-bit␈αn␈α␈um␈α␈bers␈αto␈αthree␈αm␈α␈ulti-
␈β⊂m␈↓ ↓H␈ε"plications␈αof␈ε(␈α
n␈ε"-bit␈αn␈α␈um␈α␈bers,␈α
namely␈↓ ελ␈ε(U␈↓ ε1␈ε(V␈↓ εX␈ε",␈α(␈↓ εz␈ε(U␈↓ π,␈ε6␈␈↓ πY␈ε(U␈↓ λα␈ε")(␈↓ λ~␈ε(V␈↓ λI␈ε6␈␈↓ λv␈ε(V␈↓ 	≤␈ε"),␈α
and␈↓ 
ε␈ε(U␈↓ 
/␈ε(V␈↓ 
V␈ε",␈αplus
␈β⊂y␈↓ ε ␈ε%1␈↓ εG␈ε%1␈↓ π∪␈ε%1␈↓ πr␈ε%0␈↓ λ0␈ε%0␈↓ 	␈ε%1␈↓ 
≡␈ε%0␈↓ 
E␈ε%0
␈β⊃_␈↓ ↓H␈ε"some␈αsimple␈αshi$ing␈αand␈αadding␈αoperations.
␈β∪(

␈β↓U␈↓ ↓H␈ε"4.3.3␈↓ 
)␈ε"?␈↓ 
v␈ε"279
␈β↓\␈↓ εF␈ε∞H␈α↓O␈α␈W␈α
F␈α|AST␈α
CA␈α↓N␈α	W␈α↓E␈α
MUL␈α}TI␈α↓P␈α␈L␈α}Y
␈βα"␈↓ α␈ε"F␈α⎇orm␈α␈ula␈α(2)␈αcan␈α
be␈αused␈αfor␈αdouble-precision␈α
m␈α␈ultiplication␈αwhen␈αw␈α␈e␈αw␈α␈an␈α␈t␈α
a
␈βαM␈↓ ↓H␈ε"quadruple-precision␈αresult,␈αand␈αit␈α
will␈αbe␈αjust␈αa␈α
little␈αfaster␈αthan␈αthe␈αtraditional
␈βαy␈↓ ↓H␈ε"meth␈α↓od␈α∞on␈α∞man␈α␈y␈α∞machines.␈α⊗But␈α∞the␈α∞main␈α∞adv␈α}an␈α␈tage␈α∞of␈α∞(2)␈α∞is␈α∞that␈α∞w␈α␈e␈α∞can␈α∞use
␈ββ$␈↓ ↓H␈ε"it␈αto␈αde|ne␈αa␈↓ β≠␈ε"recursiv␈α␈e␈αprocess␈αfor␈αm␈α␈ultiplication␈αthat␈αis␈αsigni|can␈α␈tly␈αfaster␈αthan
␈ββI␈↓ ∧ε␈ε%2
␈ββO␈↓ ↓H␈ε"the␈α∂familiar␈α∂order-␈↓ βp␈ε(n␈↓ ∧&␈ε"meth␈α↓od␈α∂when␈ε(␈α∂n␈ε"␈α∂is␈α∂large:␈α∪If␈↓ πi␈ε(T␈↓ λβ␈ε"(␈ε(n␈ε"␈α␈)␈α⊂is␈α∂the␈α∂time␈α∂required␈α∂to
␈ββz␈↓ ↓H␈ε"perform␈αm␈α␈ultiplication␈αof␈ε(␈αn␈ε"␈α␈-bit␈αn␈α␈um␈α␈bers,␈αw␈α␈e␈αha␈α␈v␈α␈e
␈β∧Q␈↓ ¬_␈ε(T␈↓ ¬2␈ε"(2␈ε(n␈ε")␈ε6␈α
∀␈ε"␈α
3␈↓ ε<␈ε(T␈↓ εU␈ε"(␈ε(n␈ε")␈αλ+␈ε(␈αλcn␈↓ α␈ε"(3)
␈β¬'␈↓ ↓H␈ε"for␈αλsome␈α	constan␈α␈t␈ε(␈αλc␈ε"␈α↓,␈α	since␈α	the␈αλrigh␈α␈t-hand␈α	side␈αλof␈α	(2)␈α	uses␈αλjust␈α	three␈αλm␈α␈ultiplications
␈β¬S␈↓ ↓H␈ε"plus␈αsome␈αadditions␈αand␈αshi$s.␈α⊂Relation␈α(3)␈αimplies␈αby␈αinduction␈αthat
␈βε!␈↓ ∧y␈ε+k␈↓ ¬|␈ε+k␈↓ εU␈ε+k
␈βε)␈↓ ∧A␈ε(T␈↓ ∧[␈ε"(␈↓ ∧g␈ε"2␈↓ ¬␈ε")␈ε6␈α
∀␈ε(␈α
c␈ε"(␈↓ ¬j␈ε"3␈↓ ε↔␈ε6␈␈↓ εC␈ε"2␈↓ εg␈ε"),␈↓ πK␈ε(k␈↓ πi␈ε6∃␈ε"␈α
1,␈↓ α␈ε"(4)
␈βπ␈↓ ↓H␈ε"if␈α∞w␈α␈e␈α∞ch␈α↓o␈α↓ose␈ε(␈α∞c␈ε"␈α∞to␈α∞be␈α∞large␈α∂en␈α↓ough␈α∞so␈α∞that␈α∞this␈α∞inequalit␈α␈y␈α∞is␈α∞v␈α}alid␈α∞when␈↓ 
=␈ε(k␈↓ 
←␈ε"=␈α
1;
␈βπ+␈↓ ↓H␈ε"therefore␈αw␈α␈e␈αha␈α␈v␈α␈e
␈βπt␈↓ ¬(␈ε9d␈↓ ¬4␈ε%lg␈↓ ¬Q␈ε+n␈ε9␈α␈e␈↓ εb␈ε9d␈↓ εn␈ε%lg␈↓ π␈ε+n␈ε9␈α␈e␈↓ πq␈ε9d␈↓ π⎇␈ε%lg␈↓ λ~␈ε+n␈ε9␈α␈e
␈βπ|␈↓ βp␈ε(T␈↓ ∧
␈ε"(␈ε(n␈ε")␈ε6␈α
∀␈↓ ∧p␈ε(T␈↓ ¬
␈ε"(␈↓ ¬⊗␈ε"2␈↓ ¬q␈ε")␈↓ επ␈ε6∀␈ε(␈α
c␈ε"(␈↓ εP␈ε"3␈↓ π3␈ε6␈␈↓ π←␈ε"2␈↓ λ:␈ε")
␈βλ*␈↓ πα␈ε%lg␈↓ π∨␈ε+n␈↓ λ"␈ε%lg␈↓ λ?␈ε%3
␈βλ2␈↓ επ␈ε"<␈α
3␈ε(c␈ε6␈αλ↓␈↓ εp␈ε"3␈↓ π=␈ε"=␈α
3␈ε(c␈↓ λ␈ε(n␈↓ λP␈ε".␈↓ α␈ε"(5)
␈β	λ␈↓ ↓H␈ε"Relation␈α
(5)␈αsh␈α↓o␈α␈ws␈αthat␈α
the␈αrunning␈αtime␈α
for␈αm␈α␈ultiplication␈α
can␈αbe␈αreduced␈α
from
␈β	-␈↓ α>␈ε%2␈↓ ∧α␈ε%lg␈↓ ∧∨␈ε%3␈↓ ¬ε␈ε%1.585
␈β	4␈↓ ↓H␈ε"order␈↓ α(␈ε(n␈↓ α]␈ε"to␈α∂order␈↓ βl␈ε(n␈↓ ∧>␈ε6→␈↓ ∧p␈ε(n␈↓ ¬M␈ε",␈α∂so␈α∂the␈α∂recursiv␈α␈e␈α∞meth␈α↓od␈α∂is␈α∞m␈α␈uch␈α∂faster␈α∞than
␈β	←␈↓ ↓H␈ε"the␈αtraditional␈αmeth␈α↓od␈αwhen␈ε(␈αn␈ε"␈αis␈αlarge.
␈β

␈↓ α␈ε"(A␈αsimilar␈αbut␈αm␈α↓ore␈αcomplicated␈αmeth␈α↓od␈αfor␈αdoing␈αm␈α␈ultiplication␈αwith␈αrun-
␈β
/␈↓ ∧$␈ε%lg␈↓ ∧A␈ε%3
␈β
5␈↓ ↓H␈ε"ning␈α∪time␈α∪of␈α∪order␈↓ ∧∞␈ε(n␈↓ ∧e␈ε"w␈α␈as␈α∪apparen␈α␈tly␈α∪|rst␈α∪suggested␈α∪by␈α∪A.␈↓ 	W␈ε"Karatsuba␈α∪in
␈β
`␈↓ ↓H␈ε/Doklady␈α∞Ak␈α}ad.␈α∂Nauk␈α∂SSSR␈ε2␈α∞145␈ε"␈α∂(1962),␈α⊂293↑294␈α∞[English␈α∂translation␈α∂in␈ε/␈α∞So␈α␈viet
␈β␈↓ ↓H␈ε/Ph␈α␈ysics↑Doklady␈ε2␈α7␈ε"␈α(1963),␈α595↑596].␈α⊂Curiously,␈αthis␈αidea␈αdoes␈αn␈α↓ot␈αseem␈αto␈αha␈α␈v␈α␈e
␈β7␈↓ ↓H␈ε"been␈α∞disco␈α␈v␈α␈ered␈α∞before␈α∞1962;␈α∂n␈α↓one␈α∂of␈α∞the␈α∞\␈↓ εt␈ε"calculating␈α∞prodigies"␈↓ 	X␈ε"wh␈α↓o␈α∞ha␈α␈v␈α␈e␈α∞be-
␈βb␈↓ ↓H␈ε"come␈α⊃fam␈α↓ous␈α⊃for␈α∩their␈α⊃abilit␈α␈y␈α⊃to␈α∩m␈α␈ultiply␈α⊃large␈α⊃n␈α␈um␈α␈bers␈α∩men␈α␈tally␈α⊃ha␈α␈v␈α␈e␈α⊃been
␈β
␈↓ ↓H␈ε"reported␈α
to␈α
use␈α
an␈α␈y␈α
such␈α
meth␈α↓od,␈α
alth␈α↓ough␈α
form␈α␈ula␈α
(2)␈α
adapted␈α
to␈α
decimal␈α
n␈α↓ota-
␈β8␈↓ ↓H␈ε"tion␈α	w␈α␈ould␈α
seem␈α	to␈α
lead␈α	to␈α
a␈α	reasonably␈α
easy␈α	w␈α␈a␈α␈y␈α
to␈α	m␈α␈ultiply␈α
eigh␈α␈t-digit␈α	n␈α␈um␈α␈bers
␈βd␈↓ ↓H␈ε"in␈αone's␈αhead.)
␈β
∂␈↓ α␈ε"The␈αrunning␈αtime␈α
can␈αbe␈αreduced␈αstill␈αfurther,␈α
in␈αthe␈αlimit␈αas␈ε(␈αn␈ε"␈αapproaches
␈β
:␈↓ ↓H␈ε"in|nit␈α␈y,␈α∞if␈α∂w␈α␈e␈α∞observ␈α␈e␈α∞that␈α∞the␈α∞meth␈α↓od␈α∞just␈α∂used␈α∞is␈α∞essen␈α␈tially␈α∞the␈α∞special␈α∞case
␈β
e␈↓ ↓H␈ε(r␈↓ ↓b␈ε"=␈α
1␈αof␈αa␈αm␈α↓ore␈αgeneral␈αmeth␈α↓od␈αthat␈αyields
␈β∞≥␈↓ ∧J␈ε↓␈␈↓ ¬]␈ε↓↓
␈β∞<␈↓ ∧1␈ε(T␈↓ ∧X␈ε"(␈↓ ∧d␈ε(r␈↓ ∧⎇␈ε"+␈αλ1)␈ε(n␈↓ ¬u␈ε6∀␈ε"␈α
(2␈↓ εA␈ε(r␈↓ εY␈ε"+␈αλ1)␈↓ π#␈ε(T␈↓ π=␈ε"(␈ε(n␈ε")␈αλ+␈ε(␈αλcn␈↓ α␈ε"(6)
␈β∂∩␈↓ ↓H␈ε"for␈αan␈α␈y␈α|xed␈↓ β≤␈ε(r␈↓ β,␈ε".␈α⊂This␈αm␈α↓ore␈αgeneral␈αmeth␈α↓od␈αcan␈αbe␈αobtained␈αas␈αfollo␈α␈ws:␈αLet
␈β∂i␈↓ α?␈ε(u␈ε"␈α
=␈α
(␈↓ β_␈ε(u␈↓ ∧C␈ε".␈αε.␈αε.␈↓ ∧s␈ε(u␈↓ ¬→␈ε(u␈↓ ¬>␈ε")␈↓ ε#␈ε"and␈↓ π%␈ε(v␈↓ πB␈ε"=␈α
(␈↓ π|␈ε(v␈↓ 	$␈ε".␈αε.␈αε.␈↓ 	T␈ε(v␈↓ 	v␈ε(v␈↓ 
_␈ε")
␈β∂u␈↓ ¬λ␈ε%1␈↓ ¬-␈ε%0␈↓ ¬J␈ε%2␈↓ 	e␈ε%1␈↓ 
π␈ε%0␈↓ 
$␈ε%2
␈β∂v␈↓ β-␈ε%(␈↓ β7␈ε+r␈↓ βE␈ε%+␈α␈1␈α↓)␈ε+n␈ε9␈␈ε%␈α␈1␈↓ λ
␈ε%(␈↓ λ_␈ε+r␈↓ λ%␈ε%+1)␈ε+␈α↓n␈ε9␈α␈␈␈ε%1
␈β⊂@␈↓ ↓H␈ε"be␈αbrok␈α␈en␈αin␈α␈to␈↓ β8␈ε(r␈↓ βP␈ε"+␈αλ1␈αpieces,
␈β⊃∞␈↓ β-␈ε+r␈↓ β;␈ε+n␈↓ ¬≥␈ε+n␈↓ πi␈ε+r␈↓ πv␈ε+n␈↓ 	U␈ε+n
␈β⊃⊗␈↓ α&␈ε(u␈ε"␈α
=␈↓ αs␈ε(U␈↓ β≠␈ε"2␈↓ βW␈ε"+␈↓ ∧β␈ε6↓␈αε↓␈αε↓␈↓ ∧5␈ε"+␈↓ ∧a␈ε(U␈↓ ¬␈ε"2␈↓ ¬9␈ε"+␈↓ ¬e␈ε(U␈↓ ε∞␈ε",␈↓ εf␈ε(v␈↓ πβ␈ε"=␈↓ π1␈ε(V␈↓ πW␈ε"2␈↓ λ∪␈ε"+␈↓ λ?␈ε6↓␈αε↓␈αε↓␈↓ λq␈ε"+␈↓ 	≥␈ε(V␈↓ 	C␈ε"2␈↓ 	q␈ε"+␈↓ 
≥␈ε(V␈↓ 
D␈ε",␈↓ α␈ε"(7)
␈β⊃#␈↓ β␈ε+r␈↓ ∧z␈ε%1␈↓ ¬}␈ε%0␈↓ πG␈ε+r␈↓ 	2␈ε%1␈↓ 
3␈ε%0
␈β∪(

␈β↓U␈↓ ↓H␈ε"280␈↓ 
b␈ε"4.3.3
␈β↓\␈↓ α=␈ε∞ARITH␈α↓MET␈α↓IC
␈βα!␈↓ ↓H␈ε"where␈αeach␈↓ βα␈ε(U␈↓ β6␈ε"and␈αeach␈↓ ∧N␈ε(V␈↓ ∧␈␈ε"is␈αan␈ε(␈αn␈ε"␈α␈-bit␈αn␈α␈um␈α␈ber.␈α⊂Consider␈αthe␈αpolyn␈α↓omials
␈βα-␈↓ β~␈ε+j␈↓ ∧c␈ε+j
␈βαp␈↓ β¬␈ε+r␈↓ πT␈ε+r
␈βαw␈↓ ↓H␈ε(U␈↓ ↓e␈ε"(␈ε(x␈ε")␈α
=␈↓ αI␈ε(U␈↓ αq␈ε(x␈↓ β≤␈ε"+␈↓ βH␈ε6↓␈αε↓␈αε↓␈↓ βz␈ε"+␈↓ ∧&␈ε(U␈↓ ∧P␈ε(x␈ε"␈αλ+␈↓ ¬_␈ε(U␈↓ ¬B␈ε",␈↓ ε~␈ε(V␈↓ ε7␈ε"(␈ε(x␈ε")␈α
=␈↓ π≠␈ε(V␈↓ π@␈ε(x␈↓ πl␈ε"+␈↓ λ_␈ε6↓␈αε↓␈αε↓␈↓ λJ␈ε"+␈↓ λv␈ε(V␈↓ 	≤␈ε(x␈ε"␈αλ+␈↓ 	d␈ε(V␈↓ 
␈ε",␈↓ α␈ε"(8)
␈ββ∧␈↓ αb␈ε+r␈↓ ∧?␈ε%1␈↓ ¬1␈ε%0␈↓ π1␈ε+r␈↓ 	␈ε%1␈↓ 	z␈ε%0
␈ββN␈↓ ↓H␈ε"and␈αlet
␈ββq␈↓ ε[␈ε%2␈↓ εj␈ε+r
␈ββy␈↓ β7␈ε(W␈↓ β[␈ε"(␈ε(x␈ε")␈α
=␈↓ ∧?␈ε(U␈↓ ∧\␈ε"(␈ε(x␈ε")␈↓ ¬λ␈ε(V␈↓ ¬&␈ε"(␈ε(x␈ε")␈α
=␈↓ ε
␈ε(W␈↓ εG␈ε(x␈↓ πα␈ε"+␈↓ π.␈ε6↓␈αε↓␈αε↓␈↓ π`␈ε"+␈↓ λ␈ε(W␈↓ λ;␈ε(x␈ε"␈αλ+␈↓ 	β␈ε(W␈↓ 	3␈ε".␈↓ α␈ε"(9)
␈β∧ε␈↓ ε)␈ε%2␈↓ ε8␈ε+r␈↓ λ+␈ε%1␈↓ 	"␈ε%0
␈β∧8␈↓ βG␈ε+n␈↓ ¬↑␈ε+n␈↓ λd␈ε+n
␈β∧>␈↓ ↓H␈ε"Since␈ε(␈α⊃u␈ε"␈α∀=␈↓ β␈ε(U␈↓ β)␈ε"(␈↓ β5␈ε"2␈↓ β[␈ε")␈α∩and␈↓ ∧D␈ε(v␈↓ ∧k␈ε"=␈↓ ¬"␈ε(V␈↓ ¬@␈ε"(␈↓ ¬L␈ε"2␈↓ ¬r␈ε"),␈α∀w␈α␈e␈α⊃ha␈α␈v␈α␈e␈ε(␈α∩u␈↓ πD␈ε(v␈↓ πj␈ε"=␈↓ λ"␈ε(W␈↓ λF␈ε"(␈↓ λR␈ε"2␈↓ λx␈ε"),␈α∪so␈α∩w␈α␈e␈α∩can␈α⊃easily
␈β∧i␈↓ ↓H␈ε"compute␈ε(␈αu␈↓ αo␈ε(v␈↓ β∞␈ε"if␈α
w␈α␈e␈α
kn␈α↓o␈α␈w␈αthe␈α
coe}cien␈α␈ts␈α
of␈↓ εf␈ε(W␈↓ π
␈ε"(␈ε(x␈ε").␈α∩The␈αproblem␈α
is␈α
to␈α|nd␈α
a␈αgo␈α↓od
␈β¬∀␈↓ ↓H␈ε"w␈α␈a␈α␈y␈αto␈αcompute␈αthe␈αcoe}cien␈α␈ts␈αof␈↓ ¬k␈ε(W␈↓ ε∞␈ε"(␈ε(x␈ε")␈αby␈αusing␈αonly␈α2␈↓ λ8␈ε(r␈↓ λP␈ε"+␈αλ1␈αm␈α␈ultiplications␈αof
␈β¬?␈↓ ↓H␈ε(n␈ε"␈α␈-bit␈αn␈α␈um␈α␈bers␈αplus␈αsome␈αfurther␈αoperations␈αthat␈αin␈α␈v␈α␈olv␈α␈e␈αonly␈αan␈αexecution␈αtime
␈β¬k␈↓ ↓H␈ε"proportional␈αto␈ε(␈αn␈ε"␈α␈.␈α⊂This␈αcan␈αbe␈αdone␈αby␈αcomputing
␈βεA␈↓ ↓H␈ε(U␈↓ ↓e␈ε"(0)␈↓ α∂␈ε(V␈↓ α-␈ε"(0)␈α
=␈↓ β∂␈ε(W␈↓ β2␈ε"(0),␈↓ ∧⊂␈ε(U␈↓ ∧.␈ε"(1)␈↓ ∧X␈ε(V␈↓ ∧u␈ε"(1)␈α
=␈↓ ¬W␈ε(W␈↓ ¬{␈ε"(1),␈↓ εY␈ε".␈αε.␈αε.␈↓ π	␈ε",␈↓ π=␈ε(U␈↓ πZ␈ε"(2␈↓ πx␈ε(r␈↓ λ	␈ε")␈↓ λ∃␈ε(V␈↓ λ3␈ε"(2␈↓ λQ␈ε(r␈↓ λa␈ε")␈α
=␈↓ 	%␈ε(W␈↓ 	I␈ε"(2␈↓ 	g␈ε(r␈↓ 	w␈ε").␈↓ 
p␈ε"(10)
␈βπ_␈↓ ↓H␈ε"The␈α∂coe}cien␈α␈ts␈α⊂of␈α∂a␈α⊂polyn␈α↓omial␈α∂of␈α⊂degree␈α∂2␈↓ π
␈ε(r␈↓ π-␈ε"can␈α⊂be␈α∂written␈α⊂as␈α∂a␈α⊂linear␈α∂com-
␈βπC␈↓ ↓H␈ε"bination␈α
of␈α∞the␈α
v␈α}alues␈α∞of␈α∞that␈α
polyn␈α↓omial␈α∞at␈α
2␈↓ π%␈ε(r␈↓ π?␈ε"+␈α	1␈α
distinct␈α∞poin␈α␈ts;␈α∞computing
␈βπn␈↓ ↓H␈ε"such␈αa␈αlinear␈αcom␈α␈bination␈αrequires␈αan␈αexecution␈αtime␈αat␈αm␈α↓ost␈αproportional␈αto␈ε(␈αn␈ε"␈α␈.
␈βλ→␈↓ ↓H␈ε"(Actually,␈αthe␈α
products␈↓ ∧=␈ε(U␈↓ ∧Z␈ε"(␈↓ ∧f␈ε(j␈↓ ∧w␈ε")␈↓ ¬β␈ε(V␈↓ ¬!␈ε"(␈↓ ¬-␈ε(j␈↓ ¬>␈ε")␈αare␈αn␈α↓ot␈αstrictly␈α
products␈αof␈ε(␈αn␈ε"-bit␈α
n␈α␈um␈α␈bers,␈αbut
␈βλD␈↓ ↓H␈ε"they␈α	are␈α
products␈α	of␈α
at␈α	m␈α↓ost␈α
(␈ε(n␈ε"␈αα+␈ε(␈αβt␈ε"␈α↓)-bit␈α	n␈α␈um␈α␈bers,␈α
where␈ε(␈α
t␈ε"␈α	is␈α
a␈α	|xed␈α
v␈α}alue␈α	depend-
␈βλp␈↓ ↓H␈ε"ing␈α∞on␈↓ α;␈ε(r␈↓ αK␈ε".␈α_It␈α∞is␈α∂easy␈α∞to␈α∂design␈α∞a␈α∂m␈α␈ultiplication␈α∞routine␈α∂for␈α∂(␈ε(n␈ε"␈α	+␈ε(␈α
t␈ε")-bit␈α∞n␈α␈um␈α␈bers
␈β	≠␈↓ ↓H␈ε"that␈α
requires␈α	only␈↓ βd␈ε(T␈↓ β}␈ε"(␈ε(n␈ε")␈α∧+␈↓ ∧W␈ε(c␈↓ ∧x␈ε(n␈ε"␈α	operations,␈αwhere␈↓ π3␈ε(T␈↓ πM␈ε"(␈ε(n␈ε")␈α
is␈α
the␈α
n␈α␈um␈α␈ber␈α
of␈α	operations
␈β	'␈↓ ∧g␈ε%1
␈β	F␈↓ ↓H␈ε"needed␈α∞for␈ε(␈α∂n␈ε"-bit␈α∂m␈α␈ultiplications,␈α∂since␈α∂t␈α␈w␈α␈o␈α∂products␈α∂of␈ε(␈α∂t␈ε"-bit␈α∂by␈ε(␈α∂n␈ε"-bit␈α∞n␈α␈um␈α␈bers
␈β	q␈↓ ↓H␈ε"can␈α
be␈α
done␈α
in␈↓ β>␈ε(c␈↓ β↑␈ε(n␈ε"␈αoperations␈α
when␈ε(␈α
t␈ε"␈α∞is␈α
|xed.)␈α≠Therefore␈αw␈α␈e␈α
obtain␈α
a␈α
meth␈α↓od
␈β	}␈↓ βM␈ε%2
␈β
≤␈↓ ↓H␈ε"of␈αm␈α␈ultiplication␈αsatisfying␈α(6).
␈β
@␈↓ εo␈ε%log␈↓ πJ␈ε%(2␈↓ πc␈ε+r␈↓ πq␈ε%+1)␈↓ 	%␈ε%1␈α↓+␈↓ 	R␈ε%log␈↓ 
1␈ε%2
␈β
H␈↓ α␈ε"Relation␈α⊂(6)␈α⊂implies␈α⊂that␈↓ ¬,␈ε(T␈↓ ¬F␈ε"(␈ε(n␈ε")␈ε6␈α⊃∀␈↓ ε9␈ε(c␈↓ εY␈ε(n␈↓ λ;␈ε"<␈↓ λp␈ε(c␈↓ 	⊂␈ε(n␈↓ 
B␈ε",␈α⊃if␈α⊂w␈α␈e
␈β
M␈↓ π⊗␈ε-r␈↓ π#␈ε'+1␈↓ 	y␈ε-r␈↓ 
ε␈ε'+1
␈β
T␈↓ εI␈ε%3␈↓ λ␈␈ε%3
␈β
s␈↓ ↓H␈ε"argue␈αas␈αin␈αthe␈αderiv␈α}ation␈αof␈α(5),␈αso␈αw␈α␈e␈αha␈α␈v␈α␈e␈αn␈α↓o␈α␈w␈αpro␈α␈v␈α␈ed␈αthe␈αfollo␈α␈wing␈αresult:
␈β4␈↓ ↓H␈ε2Theorem␈αA.␈ε/␈α→Giv␈α␈en␈ε(␈α∂␈ε"␈α
>␈α
0␈ε/,␈αthere␈αexists␈αa␈αm␈α␈ultiplication␈αalgorithm␈αsuch␈αthat␈αthe
␈β←␈↓ ↓H␈ε/n␈α␈um␈α␈ber␈α⊂of␈α⊂elemen␈α␈tary␈α⊂operations␈↓ ¬j␈ε(T␈↓ ε∧␈ε"(␈ε(n␈ε")␈ε/␈α⊂needed␈α⊂to␈α⊂m␈α␈ultiply␈α⊂t␈α␈w␈α␈o␈ε(␈α⊃n␈ε/␈α␈-bit␈α⊂n␈α␈um␈α␈bers
␈β
␈↓ ↓H␈ε/satis|es
␈β.␈↓ ε⎇␈ε%1+␈ε+∂
␈β6␈↓ ¬2␈ε(T␈↓ ¬L␈ε"(␈ε(n␈ε")␈α
<␈ε(␈α
c␈ε"(␈ε(∂␈ε")␈↓ εh␈ε(n␈↓ π8␈ε",␈↓ 
p␈ε"(11)
␈βz␈↓ ↓H␈ε/for␈αsome␈αconstan␈α␈t␈ε(␈αc␈ε"(␈ε(∂␈ε")␈ε/␈αindependen␈α␈t␈αof␈ε(␈αn␈ε/␈α␈.
␈β
β␈↓ εi␈∧
βεi≠∂
␈β
;␈↓ α␈ε"This␈α⊂theorem␈α⊃is␈α⊂still␈α⊂n␈α↓ot␈α⊃the␈α⊂result␈α⊃w␈α␈e␈α⊂are␈α⊂a$er.␈α≥It␈α⊃is␈α⊂unsatisfactory␈α⊂for
␈β
f␈↓ ↓H␈ε"practical␈α
purposes␈α
in␈α
that␈αthe␈α
meth␈α↓od␈α
becomes␈αm␈α␈uch␈α
m␈α↓ore␈α
complicated␈α
as␈ε(␈α∂␈ε6␈α	!␈ε"␈α
0
␈β∞⊃␈↓ ↓H␈ε"(and␈α
therefore␈α∞as␈↓ βb␈ε(r␈↓ β␈␈ε6!␈α1␈ε"),␈α∞causing␈ε(␈α
c␈ε"␈α↓(␈ε(∂␈ε"␈α␈)␈α∞to␈α
gro␈α␈w␈α∞so␈α
rapidly␈α∞that␈α
extremely␈α
h␈α␈uge
␈β∞=␈↓ ↓H␈ε"v␈α}alues␈α
of␈ε(␈α
n␈ε"␈αare␈α
needed␈α
before␈αw␈α␈e␈α
ha␈α␈v␈α␈e␈α
an␈α␈y␈αsigni|can␈α␈t␈α
impro␈α␈v␈α␈emen␈α␈t␈αo␈α␈v␈α␈er␈α
(5).␈α∂And
␈β∞h␈↓ ↓H␈ε"it␈αis␈αunsatisfactory␈α
for␈αtheoretical␈αpurposes␈αbecause␈α
it␈αdoes␈αn␈α↓ot␈α
mak␈α␈e␈αuse␈αof␈αthe
␈β∂∪␈↓ ↓H␈ε"full␈α⊂po␈α␈w␈α␈er␈α⊂of␈α⊂the␈α⊂polyn␈α↓omial␈α⊃meth␈α↓od␈α⊂on␈α⊂which␈α⊂it␈α⊂is␈α⊂based.␈α≥W␈α⎇e␈α⊂can␈α⊂obtain␈α⊂a
␈β∂>␈↓ ↓H␈ε"better␈α∞result␈α∂if␈α∞w␈α␈e␈α∂let␈↓ ∧.␈ε(r␈↓ ∧M␈ε/v␈α}ary␈ε"␈α∞with␈ε(␈α∂n␈ε",␈α∂ch␈α↓o␈α↓osing␈α∞larger␈α∂and␈α∂larger␈α∞v␈α}alues␈α∂of␈↓ 
m␈ε(r␈↓ ␈ε"as
␈β∂i␈↓ ↓H␈ε(n␈ε"␈α∞increases.␈α_This␈α∂idea␈α∂is␈α∂due␈α∞to␈α∂A.␈α∂L.␈↓ ε<␈ε"T␈α⎇o␈α↓om␈α∞[␈ε/Doklady␈α∂Ak␈α}ad.␈α∂Nauk␈α∂SSSR␈ε2␈α∞150
␈β⊂∃␈↓ ↓H␈ε"(1963),␈α∞496↑498,␈α∞English␈α∞translation␈α∞in␈ε/␈α∞So␈α␈viet␈α∞Mathematics␈ε2␈α∞3␈ε"␈α∞(1963),␈α∞714↑716],
␈β⊂@␈↓ ↓H␈ε"wh␈α↓o␈αused␈αit␈αto␈αsh␈α↓o␈α␈w␈αthat␈αcomputer␈αcircuitry␈αfor␈αm␈α␈ultiplication␈αof␈ε(␈αn␈ε"␈α␈-bit␈αn␈α␈um␈α␈bers
␈β⊂k␈↓ ↓H␈ε"can␈α∞be␈α∞constructed␈α∞in␈α␈v␈α␈olving␈α∞a␈α∞fairly␈α∂small␈α∞n␈α␈um␈α␈ber␈α∞of␈α∞componen␈α␈ts␈α∞as␈ε(␈α∂n␈ε"␈α
gro␈α␈ws.
␈β⊃⊗␈↓ ↓H␈ε"S.␈α∞A.␈↓ α&␈ε"Co␈α↓ok␈α∞[␈ε/On␈α∞the␈α∞minim␈α␈um␈α∞computation␈α∞time␈α∂of␈α∞functions␈ε"␈α∞(Thesis,␈α∞Harv␈α}ard
␈β∪(

␈β↓U␈↓ ↓H␈ε"4.3.3␈↓ 
)␈ε"?␈↓ 
v␈ε"281
␈β↓\␈↓ εF␈ε∞H␈α↓O␈α␈W␈α
F␈α|AST␈α
CA␈α↓N␈α	W␈α↓E␈α
MUL␈α}TI␈α↓P␈α␈L␈α}Y
␈βα"␈↓ ↓H␈ε"Univ␈α␈ersit␈α␈y,␈α∂1966),␈α∞51↑77]␈α∂later␈α∞sh␈α↓o␈α␈w␈α␈ed␈α∞h␈α↓o␈α␈w␈α∂T␈α⎇o␈α↓om's␈α∞meth␈α↓od␈α∞can␈α∂be␈α∞adapted␈α∞to
␈βαM␈↓ ↓H␈ε"fast␈αcomputer␈αprograms.
␈βαy␈↓ α␈ε"Before␈α	w␈α␈e␈αλdiscuss␈α	the␈α	T␈α⎇o␈α↓om↑Co␈α↓ok␈α	algorithm␈αλan␈α␈y␈α	further,␈α
let␈αλus␈α	study␈α	a␈αλsmall
␈ββ$␈↓ ↓H␈ε"example␈αof␈α
the␈α
transition␈α
from␈↓ ¬;␈ε(U␈↓ ¬Y␈ε"(␈ε(x␈ε")␈αand␈↓ εX␈ε(V␈↓ εv␈ε"(␈ε(x␈ε")␈α
to␈αthe␈α
coe}cien␈α␈ts␈α
of␈↓ 	z␈ε(W␈↓ 
≡␈ε"(␈ε(x␈ε").␈α∩This
␈ββO␈↓ ↓H␈ε"example␈α∞will␈α∞n␈α↓ot␈α∂dem␈α↓onstrate␈α∞the␈α∂e}ciency␈α∞of␈α∞the␈α∂meth␈α↓od,␈α∂since␈α∞the␈α∞n␈α␈um␈α␈bers
␈ββz␈↓ ↓H␈ε"are␈αto␈α↓o␈αsmall,␈αbut␈αit␈αpoin␈α␈ts␈αout␈αsome␈αuseful␈αsimpli|cations␈αthat␈αw␈α␈e␈αcan␈αmak␈α␈e␈αin
␈β∧%␈↓ ↓H␈ε"the␈αgeneral␈α
case.␈α∪Suppose␈α
that␈αw␈α␈e␈α
w␈α␈an␈α␈t␈α
to␈α
m␈α␈ultiply␈ε(␈α
u␈ε"␈α=␈α1234␈α
times␈↓ 

␈ε(v␈↓ 
+␈ε"=␈α2341;
␈β∧Q␈↓ ↓H␈ε"in␈α∞binary␈α∞n␈α↓otation␈α
this␈α∞is␈ε(␈α∞u␈ε"␈α
=␈α∞(0100␈α	1101␈α	0010␈↓ π1␈ε")␈↓ π\␈ε"times␈↓ λ>␈ε(v␈↓ λ↑␈ε"=␈α
(1001␈α	0010␈α
0101␈↓ ε␈ε")␈↓ "␈ε".
␈β∧]␈↓ π=␈ε%2␈↓ ∩␈ε%2
␈β∧|␈↓ ↓H␈ε"Let␈↓ α
␈ε(r␈↓ α$␈ε"=␈α
2;␈αthe␈αpolyn␈α↓omials␈↓ ¬␈ε(U␈↓ ¬≥␈ε"(␈ε(x␈ε"),␈↓ ¬←␈ε(V␈↓ ¬⎇␈ε"(␈ε(x␈ε")␈αin␈α(8)␈αare
␈β¬3␈↓ ∧O␈ε%2␈↓ λ∩␈ε%2
␈β¬;␈↓ β(␈ε(U␈↓ βE␈ε"(␈ε(x␈ε")␈α
=␈α
4␈↓ ∧;␈ε(x␈↓ ∧h␈ε"+␈αλ13␈ε(x␈ε"␈αλ+␈αλ2,␈↓ εj␈ε(V␈↓ πλ␈ε"(␈ε(x␈ε")␈α
=␈α
9␈↓ π}␈ε(x␈↓ λ*␈ε"+␈αλ2␈ε(x␈ε"␈αλ+␈αλ5.
␈β¬{␈↓ ↓H␈ε"Hence␈αw␈α␈e␈α|nd,␈αfor␈↓ βq␈ε(W␈↓ ∧∀␈ε"(␈ε(x␈ε")␈α
=␈↓ ∧x␈ε(U␈↓ ¬⊗␈ε"(␈ε(x␈ε")␈↓ ¬B␈ε(V␈↓ ¬←␈ε"(␈ε(x␈ε"),
␈βε7␈↓ ↓N␈ε(U␈↓ ↓k␈ε"(0)␈α
=␈↓ α←␈ε"2,␈↓ β6␈ε(U␈↓ βT␈ε"(1)␈α
=␈↓ ∧H␈ε"19,␈↓ ¬1␈ε(U␈↓ ¬N␈ε"(2)␈α
=␈↓ εT␈ε"44,␈↓ π=␈ε(U␈↓ πZ␈ε"(3)␈α
=␈↓ λ`␈ε"77,␈↓ 	I␈ε(U␈↓ 	f␈ε"(4)␈α
=␈↓ 
l␈ε"118;
␈βεb␈↓ ↓N␈ε(V␈↓ ↓k␈ε"(0)␈α
=␈↓ α←␈ε"5,␈↓ β6␈ε(V␈↓ βT␈ε"(1)␈α
=␈↓ ∧H␈ε"16,␈↓ ¬0␈ε(V␈↓ ¬N␈ε"(2)␈α
=␈↓ εT␈ε"45,␈↓ π<␈ε(V␈↓ πZ␈ε"(3)␈α
=␈↓ λ`␈ε"92,␈↓ 	I␈ε(V␈↓ 	f␈ε"(4)␈α
=␈↓ 
l␈ε"157;
␈βπ
␈↓ ↓H␈ε(W␈↓ ↓k␈ε"(0)␈α
=␈↓ αM␈ε"10,␈↓ β0␈ε(W␈↓ βT␈ε"(1)␈α
=␈↓ ∧6␈ε"304,␈↓ ¬*␈ε(W␈↓ ¬N␈ε"(2)␈α
=␈↓ ε0␈ε"1980,␈↓ π6␈ε(W␈↓ πZ␈ε"(3)␈α
=␈↓ λ<␈ε"7084,␈↓ 	C␈ε(W␈↓ 	f␈ε"(4)␈α
=␈↓ 
H␈ε"18526.
␈βπ8␈↓ 
p␈ε"(12)
␈βπc␈↓ ↓H␈ε"Our␈α	job␈α	n␈α↓o␈α␈w␈α	is␈α	to␈α	compute␈α	the␈α	|v␈α␈e␈α	coe}cien␈α␈ts␈α	of␈↓ π?␈ε(W␈↓ πb␈ε"(␈ε(x␈ε")␈α	from␈α	the␈α	latter␈α	|v␈α␈e␈α	v␈α}alues.
␈βλ∂␈↓ α␈ε"There␈α∩is␈α⊃an␈α∩attractiv␈α␈e␈α⊃little␈α∩algorithm␈α⊃that␈α∩can␈α⊃be␈α∩used␈α⊃to␈α∩compute␈α⊃the
␈βλ4␈↓ π	␈ε+m␈ε9␈α␈␈␈ε%1
␈βλ:␈↓ ↓H␈ε"coe}cien␈α␈ts␈α
of␈αa␈α
polyn␈α↓omial␈↓ ¬α␈ε(W␈↓ ¬&␈ε"(␈ε(x␈ε")␈α=␈↓ ε
␈ε(W␈↓ εu␈ε(x␈↓ πZ␈ε"+␈↓ λπ␈ε6↓␈αε↓␈αε↓␈↓ λ:␈ε"+␈↓ λf␈ε(W␈↓ 	⊗␈ε(x␈ε"␈αλ+␈↓ 	←␈ε(W␈↓ 
≤␈ε"when␈αthe
␈βλF␈↓ ε,␈ε+m␈ε9␈α␈␈␈ε%1␈↓ 	¬␈ε%1␈↓ 	}␈ε%0
␈βλe␈↓ ↓H␈ε"v␈α}alues␈↓ α3␈ε(W␈↓ αV␈ε"(0),␈↓ β⊂␈ε(W␈↓ β4␈ε"(1),␈↓ βn␈ε".␈αε.␈αε.␈↓ ∧≡␈ε",␈↓ ∧.␈ε(W␈↓ ∧R␈ε"(␈ε(m␈ε6␈αλ␈␈ε"␈αλ1)␈αare␈αgiv␈α␈en:␈αLet␈αus␈α|rst␈αwrite
␈β	≥␈↓ ∧␈␈ε+m␈ε9␈␈ε%1␈↓ εm␈ε+m␈ε9␈␈ε%2␈↓ λ⎇␈ε%1
␈β	%␈↓ βπ␈ε(W␈↓ β+␈ε"(␈ε(x␈ε")␈α
=␈↓ ∧∂␈ε(∩␈↓ ∧k␈ε(x␈↓ ¬P␈ε"+␈↓ ¬|␈ε(∩␈↓ εY␈ε(x␈↓ π>␈ε"+␈↓ πj␈ε6↓␈αε↓␈αε↓␈↓ λ≤␈ε"+␈↓ λH␈ε(∩␈↓ λi␈ε(x␈↓ 	⊗␈ε"+␈↓ 	B␈ε(∩␈↓ 	c␈ε",␈↓ 
p␈ε"(13)
␈β	1␈↓ ∧∨␈ε+m␈ε9␈α␈␈␈ε%1␈↓ ε
␈ε+m␈ε9␈α␈␈␈ε%2␈↓ λY␈ε%1␈↓ 	R␈ε%0
␈β	7␈↓ ∧␈␈∧	7∧␈αI␈↓ εm␈∧	7εmαI␈↓ λ⎇␈∧	7λ⎇α⊃
␈β	↑␈↓ αC␈ε+k
␈β	d␈↓ ↓H␈ε"where␈↓ α/␈ε(x␈↓ α←␈ε"=␈ε(␈α
x␈ε"(␈ε(x␈ε6␈αε␈␈ε"␈απ1)␈↓ ∧⊗␈ε".␈αε.␈αε.␈↓ ∧F␈ε"(␈ε(x␈ε6␈αε␈␈↓ ¬↔␈ε(k␈↓ ¬1␈ε"+␈αε1),␈αand␈↓ εT␈ε"where␈αthe␈αcoe}cien␈α␈ts␈↓ 	-␈ε(∩␈↓ 	W␈ε"are␈αunkn␈α↓o␈α␈wn.
␈β	p␈↓ 	=␈ε+j
␈β	x␈↓ αC␈∧	xαCα∪
␈β
∂␈↓ ↓H␈ε"The␈αfalling␈↓ β␈ε"factorial␈αpo␈α␈w␈α␈ers␈αha␈α␈v␈α␈e␈αthe␈αimportan␈α␈t␈αpropert␈α␈y␈αthat
␈β
G␈↓ ε!␈ε+m␈ε9␈␈ε%␈α␈2␈↓ 	
␈ε+m␈ε9␈α␈␈␈ε%3
␈β
O␈↓ ↓a␈ε(W␈↓ α¬␈ε"(␈ε(x␈ε"␈αλ+␈αλ1)␈ε6␈αλ␈␈↓ β+␈ε(W␈↓ βO␈ε"(␈ε(x␈ε")␈α
=␈α
(␈ε(m␈ε6␈απ␈␈ε"␈αλ1)␈↓ ¬0␈ε(∩␈↓ ε
␈ε(x␈↓ εr␈ε"+␈αλ(␈ε(m␈ε6␈αλ␈␈ε"␈αλ2)␈↓ λ≤␈ε(∩␈↓ λy␈ε(x␈↓ 	↑␈ε"+␈↓ 

␈ε6↓␈αε↓␈αε↓␈↓ 
<␈ε"+␈↓ 
h␈ε(∩␈↓ 	␈ε";
␈β
[␈↓ ¬A␈ε+m␈ε9␈α␈␈␈ε%1␈↓ λ,␈ε+m␈ε9␈␈ε%␈α␈2␈↓ 
x␈ε%1
␈β
a␈↓ ε!␈∧
aε!αI␈↓ 	
␈∧
a	
αI
␈β∞␈↓ ↓H␈ε"hence␈αby␈αinduction␈αw␈α␈e␈α|nd␈αthat,␈αfor␈αall␈↓ ε>␈ε(k␈↓ ε\␈ε6∃␈ε"␈α
0,
␈βH␈↓ α␈ε↓␈ ␈↓ 
Y␈ε↓!
␈βS␈↓ βW␈ε↓∩␈↓ ∧↓␈ε↓∪␈↓ ε⊃␈ε↓∩␈↓ ε;␈ε↓∪
␈βT␈↓ ↓d␈ε"1␈↓ βm␈ε(k␈↓ ε'␈ε(k
␈βd␈↓ 	w␈ε+k
␈βl␈↓ α↔␈ε(W␈↓ α;␈ε"(␈ε(x␈ε"␈αα+␈↓ ββ␈ε(k␈↓ β↔␈ε")␈ε6␈αλ␈␈↓ ∧↔␈ε(W␈↓ ∧;␈ε"(␈ε(x␈ε"␈αα+␈↓ ¬β␈ε(k␈↓ ¬→␈ε6␈␈ε"␈αα1)␈αλ+␈↓ εQ␈ε(W␈↓ εu␈ε"(␈ε(x␈ε"␈αα+␈↓ π=␈ε(k␈↓ πS␈ε6␈␈ε"␈αα2)␈ε6␈αλ␈␈↓ λK␈ε6↓␈αε↓␈αε↓␈↓ λ⎇␈ε"+␈αλ(␈ε6␈␈ε"1␈↓ 	k␈ε")␈↓ 
	␈ε(W␈↓ 
-␈ε"(␈ε(x␈ε")
␈β␈↓ ↓↑␈∧↓↑α∨
␈βε␈↓ ↓↑␈ε(k␈↓ ↓r␈ε"!␈↓ βn␈ε"1␈↓ ε(␈ε"2
␈βF␈↓ α,␈ε↓∩␈↓ β'␈ε↓∪␈↓ ¬←␈ε↓∩␈↓ ε[␈ε↓∪␈↓ 	q␈ε↓∩␈↓ 
≠␈ε↓∪
␈βG␈↓ αB␈ε(m␈ε6␈απ␈␈ε"␈αλ1␈↓ ¬u␈ε(m␈ε6␈αλ␈␈ε"␈αλ2␈↓ 
π␈ε(k
␈βW␈↓ ∧4␈ε+m␈ε9␈␈ε%␈α␈1␈ε9␈α↓␈␈↓ ¬→␈ε+k␈↓ πh␈ε+m␈ε9␈␈ε%␈α␈2␈ε9␈␈↓ λM␈ε+k
␈β←␈↓ ↓}␈ε"=␈↓ βC␈ε(∩␈↓ ∧ ␈ε(x␈↓ ¬3␈ε"+␈↓ εw␈ε(∩␈↓ πT␈ε(x␈↓ λg␈ε"+␈↓ 	∪␈ε6↓␈αε↓␈αε↓␈↓ 	E␈ε"+␈↓ 
7␈ε(∩␈↓ 
Z␈ε".␈α(14)
␈βl␈↓ βT␈ε+m␈ε9␈α␈␈␈ε%1␈↓ ππ␈ε+m␈ε9␈␈ε%2␈↓ 
H␈ε+k
␈βr␈↓ ∧4␈∧r∧4αx␈↓ πh␈∧rπhαx
␈βy␈↓ αj␈ε(k␈↓ ε≡␈ε(k␈↓ 
π␈ε(k
␈β
2␈↓ π ␈ε+k
␈β
:␈↓ ↓H␈ε"Den␈α↓oting␈αthe␈αle$-hand␈αside␈αof␈α(14)␈αby␈α(1/␈↓ εX␈ε(k␈↓ εl␈ε"!)␈↓ πλ␈ε"↓␈↓ π8␈ε(W␈↓ π\␈ε"(␈ε(x␈ε"),␈αw␈α␈e␈αsee␈αthat
␈β
v␈↓ ∧9␈ε↓∩␈↓ 
∨␈ε↓∪
␈β
x␈↓ αI␈ε"1␈↓ ∧"␈ε"1␈↓ ¬λ␈ε"1␈↓ λ-␈ε"1
␈β∞π␈↓ α⎇␈ε+k␈↓ ¬k␈ε+k␈↓ ¬|␈ε9␈␈ε%1␈↓ 	⊂␈ε+k␈↓ 	!␈ε9␈␈ε%␈α␈1
␈β∞⊂␈↓ αe␈ε"↓␈↓ β∃␈ε(W␈↓ β9␈ε"(␈ε(x␈ε")␈α
=␈↓ ¬S␈ε"↓␈↓ ε*␈ε(W␈↓ εN␈ε"(␈ε(x␈ε"␈αλ+␈αλ1)␈ε6␈αλ␈␈↓ λx␈ε"↓␈↓ 	O␈ε(W␈↓ 	s␈ε"(␈ε(x␈ε")
␈β∞$␈↓ αC␈∧∞$αCα∨␈↓ ∧!␈∧∞$∧!α∃␈↓ ∧S␈∧∞$∧Sα⎇␈↓ πx␈∧∞$πxα⎇
␈β∞)␈↓ αC␈ε(k␈↓ αW␈ε"!␈↓ ∧!␈ε(k␈↓ ∧S␈ε"(␈↓ ∧←␈ε(k␈↓ ∧{␈ε6␈␈ε"␈αλ1)!␈↓ πx␈ε"(␈↓ λ∧␈ε(k␈↓ λ ␈ε6␈␈ε"␈αλ1)!
␈β∞b␈↓ βλ␈ε+k
␈β∞k␈↓ ↓H␈ε"and␈α∞(1/␈↓ α@␈ε(k␈↓ αT␈ε"!)␈↓ αp␈ε"↓␈↓ β!␈ε(W␈↓ βD␈ε"(0)␈α∂=␈↓ ∧/␈ε(∩␈↓ ∧Q␈ε".␈α_So␈α∞the␈α∂coe}cien␈α␈ts␈↓ π ␈ε(∩␈↓ πN␈ε"can␈α∞be␈α∂ev␈α}aluated␈α∞using␈α∂a␈α∞v␈α␈ery
␈β∞x␈↓ ∧?␈ε+k␈↓ π0␈ε+j
␈β∂⊗␈↓ ↓H␈ε"simple␈αmeth␈α↓od,␈αillustrated␈αhere␈αfor␈αthe␈αpolyn␈α↓omial␈↓ πo␈ε(W␈↓ λ∩␈ε"(␈ε(x␈ε")␈αin␈α(12):
␈β∂N␈↓ ↓}␈ε"10
␈β∂h␈↓ β⊃␈ε"294
␈β⊂↓␈↓ ↓l␈ε"304␈↓ ∧∩␈ε"1382/2␈α
=␈α≤691
␈β⊂~␈↓ α␈␈ε"1676␈↓ εJ␈ε"1023/3␈α
=␈α
341
␈β⊂3␈↓ ↓Z␈ε"1980␈↓ ∧∩␈ε"3428/2␈α
=␈α
1714␈↓ λo␈ε"144/4␈α
=␈α
36␈↓ 
p␈ε"(15)
␈β⊂L␈↓ α␈␈ε"5104␈↓ εJ␈ε"1455/3␈α
=␈α
485
␈β⊂f␈↓ ↓Z␈ε"7084␈↓ ∧∩␈ε"6338/2␈α
=␈α
3169
␈β⊂␈␈↓ αm␈ε"11442
␈β⊃_␈↓ ↓H␈ε"18526
␈β∪(

␈β↓U␈↓ ↓H␈ε"282␈↓ 
b␈ε"4.3.3
␈β↓\␈↓ α=␈ε∞ARITH␈α↓MET␈α↓IC
␈βα"␈↓ ↓H␈ε"The␈α	le$m␈α↓ost␈α
column␈α	of␈α
this␈α	tableau␈α
is␈α	a␈α
listing␈α	of␈α
the␈α	giv␈α␈en␈α
v␈α}alues␈α	of␈↓ 	s␈ε(W␈↓ 
↔␈ε"(0),␈↓ 
U␈ε(W␈↓ 
x␈ε"(1),
␈βαM␈↓ ↓H␈ε".␈αε.␈αε.␈↓ ↓x␈ε",␈↓ α⊃␈ε(W␈↓ α4␈ε"(4);␈α⊂the␈↓ β8␈ε(k␈↓ βL␈ε"th␈α∂succeeding␈α∞column␈α∂is␈α∞obtained␈α∞by␈α∂computing␈α∞the␈α∞di{erence
␈βαy␈↓ ↓H␈ε"bet␈α␈w␈α␈een␈α∩successiv␈α␈e␈α∩v␈α}alues␈α∩of␈α∪the␈α∩preceding␈α∩column␈α∪and␈α∩dividing␈α∩by␈↓ 
-␈ε(k␈↓ 
B␈ε".␈α"The
␈ββ$␈↓ ↓H␈ε"coe}cien␈α␈ts␈↓ β␈ε(∩␈↓ β/␈ε"appear␈α∂at␈α⊂the␈α∂top␈α∂of␈α⊂the␈α∂columns,␈α⊂so␈α∂that␈↓ λf␈ε(∩␈↓ 	⊗␈ε"=␈α⊂10,␈↓ 
λ␈ε(∩␈↓ 
9␈ε"=␈α∂294,
␈ββ0␈↓ β⊂␈ε+j␈↓ λv␈ε%0␈↓ 
_␈ε%1
␈ββO␈↓ ↓H␈ε".␈αε.␈αε.␈↓ ↓x␈ε",␈↓ α∞␈ε(∩␈↓ α9␈ε"=␈α
36,␈αand␈αw␈α␈e␈αha␈α␈v␈α␈e
␈ββ[␈↓ α≡␈ε%4
␈β∧⊂␈↓ β[␈ε%4␈↓ ∧j␈ε%3␈↓ ¬y␈ε%2␈↓ ππ␈ε%1
␈β∧_␈↓ α≠␈ε(W␈↓ α?␈ε"(␈ε(x␈ε")␈↓ αu␈ε"=␈α
36␈↓ βG␈ε(x␈↓ βt␈ε"+␈αλ341␈↓ ∧V␈ε(x␈↓ ¬β␈ε"+␈αλ691␈↓ ¬e␈ε(x␈↓ ε⊃␈ε"+␈αλ294␈↓ εs␈ε(x␈↓ π ␈ε"+␈αλ10
␈β∧*␈↓ β[␈∧∧*β[α⊃␈↓ ∧j␈∧∧*∧jα⊃␈↓ ¬y␈∧∧*¬yα⊃␈↓ ππ␈∧∧*ππα⊃
␈β∧/␈↓ β#␈ε↓␈␈↓ 	→␈ε↓↓
␈β∧N␈↓ αu␈ε"=␈↓ β1␈ε"((36(␈ε(x␈ε6␈αλ␈␈ε"␈αλ3)␈αλ+␈αλ341)(␈ε(x␈ε6␈αλ␈␈ε"␈αλ2)␈αλ+␈αλ691)(␈ε(x␈ε6␈αλ␈␈ε"␈αλ1)␈αλ+␈αλ294␈↓ 	'␈ε(x␈ε"␈αλ+␈αλ10.␈↓ 
p␈ε"(16)
␈β¬_␈↓ ↓H␈ε"In␈αgeneral,␈αw␈α␈e␈αcan␈αwrite
␈β¬B␈↓ αs␈ε↓␈
␈β¬a␈↓ ↓l␈ε(W␈↓ α∂␈ε"(␈ε(x␈ε")␈α
=␈↓ βπ␈ε".␈αε.␈αε.␈↓ β7␈ε"((␈↓ βO␈ε(∩␈↓ ∧)␈ε"(␈ε(x␈ε6␈αα␈␈ε(␈ααm␈ε"␈α↓+␈αα2)␈αλ+␈↓ ε
␈ε(∩␈↓ εd␈ε")(␈ε(x␈ε6␈αα␈␈ε(␈ααm␈ε"␈α↓+␈αα3)␈αλ+␈↓ λQ␈ε(∩␈↓ 	+␈ε")(␈ε(x␈ε6␈αα␈␈ε(␈ααm␈ε"␈α↓+␈αα4)
␈β¬m␈↓ β`␈ε+m␈ε9␈α␈␈␈ε%1␈↓ ε≠␈ε+m␈ε9␈α␈␈␈ε%2␈↓ λb␈ε+m␈ε9␈α␈␈␈ε%3
␈β¬q␈↓ 
↓␈ε↓↓
␈βε⊂␈↓ λV␈ε"+␈↓ 	α␈ε6↓␈αε↓␈αε↓␈↓ 	4␈ε"+␈↓ 	`␈ε(∩␈↓ 
∃␈ε(x␈ε"␈αλ+␈↓ 
]␈ε(∩␈↓ 
}␈ε",
␈βε≤␈↓ 	q␈ε%1␈↓ 
n␈ε%0
␈βεZ␈↓ ↓H␈ε"and␈α
this␈αform␈α␈ula␈α
sh␈α↓o␈α␈ws␈αh␈α↓o␈α␈w␈α
the␈αcoe}cien␈α␈ts␈↓ εu␈ε(W␈↓ π]␈ε",␈↓ πr␈ε".␈αε.␈αε.␈↓ λ"␈ε",␈↓ λ7␈ε(W␈↓ λf␈ε",␈↓ λ{␈ε(W␈↓ 	5␈ε"can␈αbe␈α
obtained
␈βεf␈↓ π∀␈ε+m␈ε9␈␈ε%␈α␈1␈↓ λV␈ε%1␈↓ 	~␈ε%0
␈βπ¬␈↓ ↓H␈ε"from␈αthe␈↓ α\␈ε(∩␈↓ αm␈ε"'s:
␈βπF␈↓ β␈∧πFβαl
␈βπH␈↓ βu␈∧πHβuλα
␈βπO␈↓ βu␈∧πOβu,α
␈βπS␈↓ β-␈ε"36␈↓ ∧s␈ε"341
␈βπz␈↓ βu␈∧πzβu,α
␈βπ}␈↓ ∧5␈ε6␈␈ε"3␈ε6␈αλ↓␈ε"␈αλ36
␈βλ%␈↓ βu␈∧λ%βuλα
␈βλ,␈↓ β␈∧λ,βααE
␈βλ.␈↓ ¬M␈∧λ.¬Mλα
␈βλ5␈↓ ¬M␈∧λ5¬M,α
␈βλ9␈↓ β-␈ε"36␈↓ ∧s␈ε"233␈↓ εK␈ε"691
␈βλ`␈↓ ¬M␈∧λ`¬M,α
␈βλd␈↓ ∧5␈ε6␈␈ε"2␈ε6␈αλ↓␈ε"␈αλ36␈↓ ¬{␈ε6␈␈ε"2␈ε6␈αλ↓␈ε"␈αλ233
␈βλh␈↓ 
p␈ε"(17)
␈β	␈↓ ¬M␈∧	¬Mλα
␈β	∩␈↓ β␈∧	∩βα∧≥
␈β	∀␈↓ π%␈∧	∀π%λα
␈β	≠␈↓ π%␈∧	≠π%,α
␈β	∨␈↓ β-␈ε"36␈↓ ∧s␈ε"161␈↓ εK␈ε"225␈↓ λ#␈ε"294
␈β	G␈↓ π%␈∧	Gπ%,α
␈β	K␈↓ ∧5␈ε6␈␈ε"1␈ε6␈αλ↓␈ε"␈αλ36␈↓ ¬{␈ε6␈␈ε"1␈ε6␈αλ↓␈ε"␈αλ161␈↓ πS␈ε6␈␈ε"1␈ε6␈αλ↓␈ε"␈αλ225
␈β	r␈↓ π%␈∧	rπ%λα
␈β	y␈↓ β␈∧	yβα¬u
␈β	z␈↓ λ⎇␈∧	zλ⎇λα
␈β
α␈↓ λ⎇␈∧
αλ⎇,α
␈β
ε␈↓ β-␈ε"36␈↓ ∧s␈ε"125␈↓ ε]␈ε"64␈↓ λ5␈ε"69␈↓ 	!␈ε"10
␈β
-␈↓ λ⎇␈∧
-λ⎇λα
␈β
R␈↓ ↓H␈ε"Here␈αthe␈αn␈α␈um␈α␈bers␈αbelo␈α␈w␈αthe␈αh␈α↓orizon␈α␈tal␈αlines␈αsuccessiv␈α␈ely␈αsh␈α↓o␈α␈w␈αthe␈αcoe}cien␈α␈ts␈αof
␈β
⎇␈↓ ↓H␈ε"the␈αpolyn␈α↓omials
␈βB␈↓ ↓l␈ε(∩␈↓ αE␈ε",␈↓ β≥␈ε(∩␈↓ βv␈ε"(␈ε(x␈ε"␈αλ+␈ε(␈αλm␈ε"␈αλ+␈αλ2)␈αλ+␈↓ ¬p␈ε(∩␈↓ εI␈ε",
␈βN␈↓ ↓|␈ε+m␈ε9␈α␈␈␈ε%1␈↓ β-␈ε+m␈ε9␈␈ε%␈α␈1␈↓ ε␈ε+m␈ε9␈␈ε%␈α␈2
␈βY␈↓ β]␈ε↓␈␈↓ π↔␈ε↓↓
␈βx␈↓ βk␈ε(∩␈↓ ∧D␈ε"(␈ε(x␈ε6␈αλ␈␈ε(␈αλm␈ε"␈αλ+␈αλ2)␈αλ+␈↓ ε>␈ε(∩␈↓ π%␈ε"(␈ε(x␈ε6␈αλ␈␈ε(␈αλm␈ε"␈αλ+␈αλ3)␈αλ+␈↓ 	∨␈ε(∩␈↓ 	x␈ε",␈↓ 
P␈ε"etc.
␈β∧␈↓ β{␈ε+m␈ε9␈␈ε%1␈↓ εN␈ε+m␈ε9␈␈ε%2␈↓ 	/␈ε+m␈ε9␈␈ε%3
␈βB␈↓ α␈ε"F␈α⎇rom␈αthis␈αtableau␈αw␈α␈e␈αha␈α␈v␈α␈e
␈β
¬␈↓ ¬%␈ε%4␈↓ ε4␈ε%3␈↓ π0␈ε%2
␈β
␈↓ βe␈ε(W␈↓ ∧	␈ε"(␈ε(x␈ε")␈α
=␈α
36␈↓ ¬⊃␈ε(x␈↓ ¬>␈ε"+␈αλ125␈↓ ε ␈ε(x␈↓ εL␈ε"+␈αλ64␈↓ π≤␈ε(x␈↓ πI␈ε"+␈αλ69␈ε(x␈ε"␈αλ+␈αλ10,
␈β
W␈↓ ↓H␈ε"so␈α∞the␈α∞answ␈α␈er␈α∞to␈α∞our␈α∞original␈α∂problem␈α∞is␈α∞1234␈ε6␈α	↓␈ε"␈α
2341␈α
=␈↓ λD␈ε(W␈↓ λh␈ε"(16),␈α∞where␈↓ 
'␈ε(W␈↓ 
J␈ε"(16)␈α∞is
␈β∞α␈↓ ↓H␈ε"obtained␈αby␈α
adding␈αand␈α
shi$ing.␈α⊃A␈α
generalization␈αof␈α
this␈αmeth␈α↓od␈α
for␈αobtaining
␈β∞-␈↓ ↓H␈ε"coe}cien␈α␈ts␈αis␈αdiscussed␈αin␈αSection␈α4.6.4.
␈β∞X␈↓ α␈ε"The␈αbasic␈↓ β0␈ε"Stirling␈αn␈α␈um␈α␈ber␈αiden␈α␈tit␈α␈y,
␈β∂≥␈↓ ∧s␈ε↓~␈↓ ¬∨␈ε↓≠␈↓ εu␈ε↓~␈↓ π!␈ε↓≠␈↓ λ⊗␈ε↓~␈↓ λA␈ε↓≠
␈β∂≡␈↓ ¬	␈ε(n␈↓ π␈ε(n␈↓ λ,␈ε(n
␈β∂/␈↓ ∧'␈ε+n␈↓ ¬O␈ε+n␈↓ πQ␈ε%1
␈β∂6␈↓ ∧∪␈ε(x␈↓ ∧E␈ε"=␈↓ ¬;␈ε(x␈↓ ¬k␈ε"+␈↓ ε↔␈ε6↓␈αε↓␈αε↓␈↓ εI␈ε"+␈↓ π=␈ε(x␈↓ πj␈ε"+␈↓ λW␈ε",
␈β∂I␈↓ ¬O␈∧∂I¬Oα∃␈↓ πQ␈∧∂IπQα⊃
␈β∂P␈↓ ¬	␈ε(n␈↓ π
␈ε"1␈↓ λ-␈ε"0
␈β⊂⊗␈↓ ↓H␈ε"Eq.␈α
1.2.6↑41,␈α∞sh␈α↓o␈α␈ws␈α∞that␈α
if␈α∞the␈α
coe}cien␈α␈ts␈α∞of␈↓ π ␈ε(W␈↓ πC␈ε"(␈ε(x␈ε")␈α∞are␈α
n␈α↓onnegativ␈α␈e,␈α∞so␈α∞are␈α
the
␈β⊂B␈↓ ↓H␈ε"n␈α␈um␈α␈bers␈↓ αW␈ε(∩␈↓ αw␈ε",␈αand␈αin␈αsuch␈αa␈αcase␈ε/␈αall␈αof␈αthe␈αin␈α␈termediate␈αresults␈αin␈αthe␈αabo␈α␈v␈α␈e␈αcom-
␈β⊂N␈↓ αh␈ε+j
␈β⊂m␈↓ ↓H␈ε/putation␈α
are␈α
n␈α↓onnegativ␈α␈e.␈ε"␈α⊂This␈α
further␈α
simpli|es␈αthe␈↓ λλ␈ε"T␈α⎇o␈α↓om↑␈↓ λt␈ε"Co␈α↓ok␈α
m␈α␈ultiplication
␈β⊃_␈↓ ↓H␈ε"algorithm,␈αwhich␈αw␈α␈e␈αwill␈αn␈α↓o␈α␈w␈αconsider␈αin␈αdetail.
␈β∪(

␈β↓U␈↓ ↓H␈ε"4.3.3␈↓ 
)␈ε"?␈↓ 
v␈ε"283
␈β↓\␈↓ εF␈ε∞H␈α↓O␈α␈W␈α
F␈α|AST␈α
CA␈α↓N␈α	W␈α↓E␈α
MUL␈α}TI␈α↓P␈α␈L␈α}Y
␈βα"␈↓ ↓H␈ε2Algorithm␈α	C␈ε"␈α
(␈ε/High-precision␈α
m␈α␈ultiplication␈α
of␈α	binary␈α
n␈α␈um␈α␈bers␈↓ 	␈ε")␈ε2.␈ε"␈α⊃Giv␈α␈en␈α
a␈α	positiv␈α␈e
␈βαM␈↓ ↓H␈ε"in␈α␈teger␈ε(␈αn␈ε"␈α
and␈αt␈α␈w␈α␈o␈αn␈α↓onnegativ␈α␈e␈ε(␈αn␈ε"-bit␈αin␈α␈tegers␈ε(␈αu␈ε"␈αand␈↓ πp␈ε(v␈↓ λα␈ε",␈αthis␈αalgorithm␈α
forms␈αtheir
␈βαy␈↓ ↓H␈ε"2␈ε(n␈ε"␈α␈-bit␈αproduct,␈↓ βA␈ε(w␈↓ β\␈ε".␈α⊂F␈α⎇our␈αauxiliary␈αstacks␈αare␈αused␈αto␈αh␈α↓old␈αthe␈αlong␈α
n␈α␈um␈α␈bers␈αthat
␈ββ$␈↓ ↓H␈ε"are␈αmanipulated␈αduring␈αthe␈αprocedure:
␈ββ|␈↓ α5␈ε"Stacks␈↓ β'␈ε(U␈↓ βD␈ε",␈↓ βZ␈ε(V␈↓ βx␈ε":␈↓ ∧J␈ε"T␈α⎇emporary␈αstorage␈αof␈↓ π(␈ε(U␈↓ πE␈ε"(␈↓ πQ␈ε(j␈↓ πb␈ε")␈αand␈↓ λ@␈ε(V␈↓ λ↑␈ε"(␈↓ λj␈ε(j␈↓ λ{␈ε")␈αin␈αstep␈αC4.
␈β∧'␈↓ α5␈ε"Stack␈↓ β→␈ε(C␈↓ β5␈ε":␈↓ ∧J␈ε"Num␈α␈bers␈αto␈αbe␈αm␈α␈ultiplied,␈αand␈αcon␈α␈trol␈αcodes.
␈β∧S␈↓ α5␈ε"Stack␈↓ β→␈ε(W␈↓ β=␈ε":␈↓ ∧J␈ε"Storage␈αof␈↓ ¬v␈ε(W␈↓ ε~␈ε"(␈↓ ε&␈ε(j␈↓ ε7␈ε").
␈β¬0␈↓ ↓H␈ε"These␈α	stacks␈α	ma␈α␈y␈α	con␈α␈tain␈α
either␈α	binary␈α	n␈α␈um␈α␈bers␈α	or␈α
special␈α	con␈α␈trol␈α	sym␈α␈bols␈α	called
␈β¬\␈↓ ↓H␈ε"code-1,␈α
code-2,␈αand␈α
code-3.␈α∩The␈α
algorithm␈α
also␈α
constructs␈αan␈α
auxiliary␈α
table␈αof
␈βεπ␈↓ ↓H␈ε"n␈α␈um␈α␈bers␈↓ αW␈ε(q␈↓ α{␈ε",␈↓ β⊃␈ε(r␈↓ β2␈ε";␈αthis␈αtable␈αis␈αmain␈α␈tained␈αin␈αsuch␈αa␈αmanner␈αthat␈αit␈αma␈α␈y␈αbe␈αstored
␈βε∪␈↓ αi␈ε+k␈↓ β ␈ε+k
␈βε2␈↓ ↓H␈ε"as␈α
a␈α
linear␈α∞list,␈α∞where␈α
a␈α
single␈α∞poin␈α␈ter␈α
that␈α
tra␈α␈v␈α␈erses␈α∞the␈α
list␈α∞(m␈α↓o␈α␈ving␈α
back␈α
and
␈βε]␈↓ ↓H␈ε"forth)␈αma␈α␈y␈αbe␈αused␈αto␈αaccess␈αthe␈αcurren␈α␈t␈αtable␈αen␈α␈try␈αof␈αin␈α␈terest.
␈βπ␈↓ α␈ε"(Stacks␈↓ β	␈ε(C␈↓ β1␈ε"and␈↓ βv␈ε(W␈↓ ∧%␈ε"are␈αused␈αto␈αcon␈α␈trol␈αthe␈↓ π⊃␈ε"recursiv␈α␈e␈αmechanism␈αof␈αthis␈αm␈α␈ulti-
␈βπ6␈↓ ↓H␈ε"plication␈α
algorithm␈α
in␈αa␈α
reasonably␈α
straigh␈α␈tforw␈α␈ard␈αmanner␈α
that␈α
is␈αa␈α
special␈α
case
␈βπa␈↓ ↓H␈ε"of␈αgeneral␈αprocedures␈αdiscussed␈αin␈αChapter␈α8.)
␈βλ!␈↓ ↓\␈ε2C1.␈↓ α≠␈ε"[Compute␈↓ βA␈ε(q␈↓ βT␈ε",␈↓ βd␈ε(r␈↓ ∧↓␈ε"tables.]␈α→Set␈αstacks␈↓ ε4␈ε(U␈↓ εQ␈ε",␈↓ εg␈ε(V␈↓ π¬␈ε",␈↓ π≠␈ε(C␈↓ π7␈ε",␈αand␈↓ λ∪␈ε(W␈↓ λC␈ε"empt␈α␈y.␈α⊂Set
␈βλ␈␈↓ αL␈ε(k␈↓ αj␈ε6␈ ␈ε"␈α
1,␈↓ ∧α␈ε(q␈↓ ∧/␈ε6␈ ␈↓ ∧]␈ε(q␈↓ ¬
␈ε6␈ ␈ε"␈α
16,␈↓ ε4␈ε(r␈↓ ε↑␈ε6␈ ␈↓ π␈ε(r␈↓ π6␈ε6␈ ␈ε"␈α
4,␈ε(␈↓ λNQ␈ε6␈α␈ ␈ε"␈α
4,␈↓ 

␈ε(R␈↓ 
4␈ε6␈ ␈ε"␈α
2.
␈β	␈↓ ∧∀␈ε%0␈↓ ∧o␈ε%1␈↓ εC␈ε%0␈↓ π≠␈ε%1
␈β	]␈↓ α≡␈ε"No␈α␈w␈αif␈↓ β∪␈ε(q␈↓ βl␈ε"+␈↓ ∧_␈ε(q␈↓ ∧F␈ε"<␈ε(␈α
n␈ε",␈αset
␈β	j␈↓ β%␈ε+k␈↓ β5␈ε9␈␈ε%1␈↓ ∧*␈ε+k
␈β
≡␈↓ π⊗␈ε↓p
␈β
8␈↓ 	∨␈ε+Q␈↓ 
i␈ε+R
␈β
<␈↓ π:␈∧
<π:α≥
␈β
@␈↓ α>␈ε(k␈↓ α\␈ε6␈ ␈↓ β
␈ε(k␈↓ β&␈ε"+␈αλ1,␈ε(␈α<Q␈ε6␈α
␈ ␈ε(␈α
Q␈ε"␈α	+␈↓ ¬O␈ε(R␈↓ ¬m␈ε",␈↓ ε3␈ε(R␈↓ εZ␈ε6␈ ␈α
b␈↓ π:␈ε(Q␈↓ π]␈ε6c␈ε",␈↓ λ1␈ε(q␈↓ λ←␈ε6␈ ␈↓ 	
␈ε"2␈↓ 	8␈ε",␈↓ 	}␈ε(r␈↓ 
)␈ε6␈ ␈↓ 
W␈ε"2␈↓ β␈ε",
␈β
M␈↓ λB␈ε+k␈↓ 

␈ε+k
␈β␈↓ λ ␈ε↓␈
␈β≡␈↓ α≡␈ε"and␈αrepeat␈αthis␈αoperation␈αun␈α␈til␈↓ ε
␈ε(q␈↓ εb␈ε"+␈↓ π
␈ε(q␈↓ π;␈ε6∃␈ε(␈α
n␈ε".␈↓ λ.␈ε/Note:␈ε"␈αThe␈αcalculation␈αof
␈β+␈↓ ε≤␈ε+k␈↓ ε-␈ε9␈␈ε%␈α␈1␈↓ π∨␈ε+k
␈βH␈↓ βα␈ε6p
␈βI␈↓ α≡␈ε(R␈↓ αF␈ε6␈ ␈α
b␈↓ β ␈ε(Q␈↓ βB␈ε6c␈ε"␈α
does␈α	n␈α↓ot␈α
require␈α
a␈α	square␈α
ro␈α↓ot␈α	to␈α
be␈α
tak␈α␈en,␈α
since␈α	w␈α␈e␈α
ma␈α␈y␈α	simply
␈βK␈↓ β ␈∧Kβ α≥
␈βn␈↓ ¬5␈ε%2␈↓ 
=␈ε%2
␈βu␈↓ α≡␈ε"set␈↓ αV␈ε(R␈↓ α⎇␈ε6␈ ␈↓ β+␈ε(R␈↓ βP␈ε"+␈αλ1␈αif␈α(␈↓ ∧G␈ε(R␈↓ ∧l␈ε"+␈απ1␈↓ ¬)␈ε")␈↓ ¬P␈ε6∀␈ε(␈α
Q␈ε"␈αand␈αlea␈α␈v␈α␈e␈↓ πD␈ε(R␈↓ πn␈ε"unchanged␈αif␈α(␈↓ 	O␈ε(R␈↓ 	t␈ε"+␈απ1␈↓ 
1␈ε")␈↓ 
X␈ε">␈ε(␈α
Q␈ε";
␈β ␈↓ α≡␈ε"see␈αexercise␈α2.␈α⊂In␈αthis␈αstep␈αw␈α␈e␈αbuild␈αthe␈αsequences
␈βv␈↓ β≠␈ε(k␈↓ βD␈ε"=␈↓ ∧∧␈ε"0␈↓ ∧o␈ε"1␈↓ ¬Z␈ε"2␈↓ εD␈ε"3␈↓ π7␈ε"4␈↓ λ1␈ε"5␈↓ 	+␈ε"6␈↓ 
∃␈ε".␈αε.␈αε.
␈β
&␈↓ ∧∞␈ε%4␈↓ ∧x␈ε%4␈↓ ¬c␈ε%6␈↓ εN␈ε%8␈↓ π9␈ε%10␈↓ λ3␈ε%13␈↓ 	-␈ε%16
␈β
,␈↓ β␈ε(q␈↓ βD␈ε"=␈↓ β|␈ε"2␈↓ ∧f␈ε"2␈↓ ¬Q␈ε"2␈↓ ε<␈ε"2␈↓ π'␈ε"2␈↓ λ!␈ε"2␈↓ 	≠␈ε"2␈↓ 
∃␈ε".␈αε.␈αε.
␈β
8␈↓ β≥␈ε+k
␈β
\␈↓ ∧∞␈ε%2␈↓ ∧x␈ε%2␈↓ ¬c␈ε%2␈↓ εN␈ε%2␈↓ π@␈ε%3␈↓ λ:␈ε%3␈↓ 	4␈ε%4
␈β
b␈↓ β∞␈ε(r␈↓ βD␈ε"=␈↓ β|␈ε"2␈↓ ∧f␈ε"2␈↓ ¬Q␈ε"2␈↓ ε<␈ε"2␈↓ π.␈ε"2␈↓ λ(␈ε"2␈↓ 	"␈ε"2␈↓ 
∃␈ε".␈αε.␈αε.
␈β
n␈↓ β≥␈ε+k
␈β∞@␈↓ α≡␈ε"The␈α	m␈α␈ultiplication␈α
of␈α	70000-bit␈α
n␈α␈um␈α␈bers␈α	w␈α␈ould␈α
cause␈α	this␈α
step␈α	to␈α	terminate
␈β∞M␈↓ εp␈ε↓↓
␈β∞e␈↓ ¬`␈ε%13␈↓ εF␈ε%16
␈β∞k␈↓ α≡␈ε"with␈↓ αp␈ε(k␈↓ β∞␈ε"=␈α
6,␈αsince␈α70000␈α
<␈↓ ¬N␈ε"2␈↓ ελ␈ε"+␈↓ ε4␈ε"2␈↓ εf␈ε".
␈β∂+␈↓ ↓\␈ε2C2.␈↓ α≠␈ε"[Put␈ε(␈α
u␈ε",␈↓ β∞␈ε(v␈↓ β*␈ε"on␈α
stack.]␈α⊃Put␈α	code-1␈α
on␈α
stack␈↓ π
␈ε(C␈↓ π*␈ε",␈α
then␈α	place␈ε(␈α
u␈ε"␈α
and␈↓ 	I␈ε(v␈↓ 	f␈ε"on␈α␈to␈α	stack␈↓ ⊂␈ε(C
␈β∂V␈↓ α≡␈ε"as␈αn␈α␈um␈α␈bers␈αof␈αexactly␈↓ ¬↓␈ε(q␈↓ ¬Z␈ε"+␈↓ εε␈ε(q␈↓ ε6␈ε"bits␈αeach.
␈β∂c␈↓ ¬∪␈ε+k␈↓ ¬#␈ε9␈␈ε%1␈↓ ε_␈ε+k
␈β⊂⊗␈↓ ↓\␈ε2C3.␈↓ α≠␈ε"[Check␈α∂recursion␈α⊂lev␈α␈el.]␈α∨Decrease␈↓ εD␈ε(k␈↓ εg␈ε"by␈α∂1.␈α~If␈↓ πz␈ε(k␈↓ λ≡␈ε"=␈α∂0,␈α⊂the␈α∂top␈α⊂of␈α∂stack␈↓ ⊂␈ε(C
␈β⊂B␈↓ α≡␈ε"n␈α↓o␈α␈w␈α
con␈α␈tains␈αt␈α␈w␈α␈o␈α
32-bit␈α
n␈α␈um␈α␈bers,␈ε(␈αu␈ε"␈α
and␈↓ π_␈ε(v␈↓ π+␈ε";␈αrem␈α↓o␈α␈v␈α␈e␈αthem,␈α
set␈↓ 	V␈ε(w␈↓ 	z␈ε6␈ ␈ε(␈α
u␈↓ 
=␈ε(v␈↓ 
Z␈ε"using
␈β⊂m␈↓ α≡␈ε"a␈α∞built-in␈α∞routine␈α∞for␈α∞m␈α␈ultiplying␈α∞32-bit␈α∞n␈α␈um␈α␈bers,␈α∞and␈α∞go␈α∞to␈α∞step␈α∞C10.␈α⊗If
␈β⊃_␈↓ α≡␈ε(k␈↓ α<␈ε">␈α
0,␈αset␈↓ βJ␈ε(r␈↓ βe␈ε6␈ ␈↓ ∧∪␈ε(r␈↓ ∧4␈ε",␈↓ ∧J␈ε(q␈↓ ∧h␈ε6␈ ␈↓ ¬⊗␈ε(q␈↓ ¬9␈ε",␈ε(␈αp␈ε6␈α
␈ ␈↓ ε→␈ε(q␈↓ εr␈ε"+␈↓ π≡␈ε(q␈↓ πB␈ε",␈αand␈αgo␈αon␈αto␈αstep␈αC4.
␈β⊃$␈↓ ∧"␈ε+k␈↓ ¬'␈ε+k␈↓ ε+␈ε+k␈↓ ε<␈ε9␈␈ε%␈α␈1␈↓ π0␈ε+k
␈β∪(

␈β↓U␈↓ ↓H␈ε"284␈↓ 
b␈ε"4.3.3
␈β↓\␈↓ α=␈ε∞ARITH␈α↓MET␈α↓IC
␈βε7␈↓ αf␈ε3F␈α↓ig␈α␈.␈α8␈α␈.␈↓ β↑␈ε#T␈α⎇o␈α↓o␈α␈m↑␈↓ ∧B␈ε#Cook␈αa␈α␈l␈α↓g␈α␈orithm␈α
for␈αhigh␈α␈-pre␈α␈cisi␈α↓o␈α␈n␈αm␈α␈u␈α␈l␈α↓t␈α␈i␈α↓p␈α␈li␈α↓ca␈α␈tion.
␈βπ1␈↓ ↓\␈ε2C4.␈↓ α≠␈ε"[Break␈αin␈α␈to␈↓ βS␈ε(r␈↓ βi␈ε"+␈α¬1␈αparts.]␈α∀Let␈α
the␈αn␈α␈um␈α␈ber␈α
at␈αthe␈α
top␈αof␈α
stack␈↓ 	O␈ε(C␈↓ 	v␈ε"be␈α
regarded
␈βπ\␈↓ α≡␈ε"as␈α∞a␈α
list␈α∞of␈↓ βT␈ε(r␈↓ βn␈ε"+␈α	1␈α∞n␈α␈um␈α␈bers␈α
with␈↓ ε ␈ε(q␈↓ εA␈ε"bits␈α
each,␈α∞(␈↓ πr␈ε(U␈↓ λ ␈ε".␈αε.␈αε.␈↓ λP␈ε(U␈↓ λz␈ε(U␈↓ 	#␈ε")␈↓ 	O␈ε".␈α≤(The␈α∞top␈α
of
␈βπg␈↓ 	?␈ε-q
␈βπh␈↓ λ␈ε+r␈↓ λi␈ε%1␈↓ 	∪␈ε%0␈↓ 	/␈ε%2
␈βλπ␈↓ α≡␈ε"stack␈↓ α{␈ε(C␈↓ β#␈ε"n␈α↓o␈α␈w␈αcon␈α␈tains␈αan␈α(␈↓ ¬8␈ε(r␈↓ ¬O␈ε"+␈απ1)␈↓ ε_␈ε(q␈↓ ε5␈ε"=␈α
(␈↓ εo␈ε(q␈↓ π~␈ε"+␈↓ πD␈ε(q␈↓ λ∃␈ε")-bit␈αn␈α␈um␈α␈ber.)␈α↔F␈α⎇or␈↓ 
G␈ε(j␈↓ 
b␈ε"=␈α
0,
␈βλ∪␈↓ π↓␈ε+k␈↓ πV␈ε+k␈↓ πg␈ε%+␈α␈1
␈βλ2␈↓ α≡␈ε"1,␈↓ αF␈ε".␈αε.␈αε.␈↓ αv␈ε",␈α2␈↓ β≡␈ε(r␈↓ β/␈ε",␈αcompute␈αthe␈ε(␈αp␈ε"-bit␈αn␈α␈um␈α␈bers
␈βλg␈↓ βs␈ε↓␈␈↓ π]␈ε↓↓
␈β	¬␈↓ ∧π␈ε".␈αε.␈αε.␈↓ ∧7␈ε"(␈↓ ∧C␈ε(U␈↓ ∧k␈ε(j␈↓ ¬∧␈ε"+␈↓ ¬0␈ε(U␈↓ ε¬␈ε")␈↓ ε⊃␈ε(j␈↓ ε*␈ε"+␈↓ εV␈ε6↓␈αε↓␈αε↓␈↓ πλ␈ε"+␈↓ π4␈ε(U␈↓ πk␈ε(j␈↓ λ∧␈ε"+␈↓ λ0␈ε(U␈↓ λd␈ε"=␈↓ 	∩␈ε(U␈↓ 	/␈ε"(␈↓ 	;␈ε(j␈↓ 	L␈ε")
␈β	∩␈↓ ∧[␈ε+r␈↓ ¬H␈ε+r␈↓ ¬V␈ε9␈␈ε%1␈↓ πL␈ε%1␈↓ λI␈ε%0
␈β	Y␈↓ α≡␈ε"and␈α∞successiv␈α␈ely␈α
put␈α∞these␈α
v␈α}alues␈α∞on␈α␈to␈α
stack␈↓ πj␈ε(U␈↓ λπ␈ε".␈α≤(The␈α∞bottom␈α
of␈α∞stack␈↓ ∂␈ε(U
␈β
∧␈↓ α≡␈ε"n␈α↓o␈α␈w␈αcon␈α␈tains␈↓ βw␈ε(U␈↓ ∧∀␈ε"(0),␈αthen␈αcomes␈↓ ε⊂␈ε(U␈↓ ε-␈ε"(1),␈αetc.,␈αwith␈↓ λ
␈ε(U␈↓ λ+␈ε"(2␈↓ λI␈ε(r␈↓ λY␈ε")␈αon␈αtop.␈α⊂Note␈αthat
␈β
8␈↓ ¬λ␈ε↓␈␈↓ λ/␈ε↓↓
␈β
O␈↓ ∧w␈ε+q␈↓ ¬Q␈ε+r␈↓ εO␈ε+r␈↓ ε\␈ε9␈␈ε%1␈↓ 	π␈ε+q␈↓ 	↔␈ε%+␈α␈1␈↓ 
␈ε+r␈↓ 
Y␈ε+p
␈β
W␈↓ αW␈ε(U␈↓ αt␈ε"(␈↓ β␈ε(j␈↓ β⊃␈ε")␈ε6␈α
∀␈↓ βU␈ε(U␈↓ βr␈ε"(2␈↓ ∧⊂␈ε(r␈↓ ∧!␈ε")␈α
<␈↓ ∧e␈ε"2␈↓ ¬⊗␈ε"(2␈↓ ¬4␈ε(r␈↓ ¬E␈ε")␈↓ ¬h␈ε"+␈αλ(2␈↓ ε2␈ε(r␈↓ εC␈ε")␈↓ π∪␈ε"+␈↓ π?␈ε6↓␈αε↓␈αε↓␈↓ πq␈ε"+␈αλ1␈↓ λG␈ε"<␈↓ λu␈ε"2␈↓ 	E␈ε"(2␈↓ 	c␈ε(r␈↓ 	t␈ε")␈↓ 
→␈ε6∀␈↓ 
G␈ε"2␈↓ 
j␈ε",
␈β*␈↓ α≡␈ε"by␈αexercise␈α3.)␈α→Then␈αrem␈α↓o␈α␈v␈α␈e␈↓ ¬r␈ε(U␈↓ ε ␈ε".␈αε.␈αε.␈↓ εP␈ε(U␈↓ εz␈ε(U␈↓ π0␈ε"from␈αstack␈↓ λd␈ε(C␈↓ 	␈ε".
␈β6␈↓ ε␈ε+r␈↓ εi␈ε%1␈↓ π∪␈ε%0
␈βU␈↓ αb␈ε"No␈α␈w␈α
the␈α
top␈αof␈α
stack␈↓ ¬?␈ε(C␈↓ ¬h␈ε"con␈α␈tains␈α
an␈α↓other␈αlist␈α
of␈↓ λc␈ε(r␈↓ λ|␈ε"+␈αλ1␈↓ 	G␈ε(q␈↓ 	Z␈ε"-bit␈αn␈α␈um␈α␈bers,
␈β␈↓ α≡␈ε(V␈↓ αI␈ε".␈αε.␈αε.␈↓ αy␈ε(V␈↓ β ␈ε(V␈↓ βF␈ε",␈αand␈αthe␈ε(␈αp␈ε"-bit␈αn␈α␈um␈α␈bers
␈β
␈↓ α4␈ε+r␈↓ β∂␈ε%1␈↓ β5␈ε%0
␈β5␈↓ βx␈ε↓␈␈↓ πZ␈ε↓↓
␈βT␈↓ ∧␈ε".␈αε.␈αε.␈↓ ∧<␈ε"(␈↓ ∧H␈ε(V␈↓ ∧m␈ε(j␈↓ ¬ε␈ε"+␈↓ ¬2␈ε(V␈↓ ε∧␈ε")␈↓ ε⊂␈ε(j␈↓ ε)␈ε"+␈↓ εU␈ε6↓␈αε↓␈αε↓␈↓ ππ␈ε"+␈↓ π3␈ε(V␈↓ πh␈ε(j␈↓ λ↓␈ε"+␈↓ λ-␈ε(V␈↓ λ]␈ε"=␈↓ 	␈ε(V␈↓ 	)␈ε"(␈↓ 	5␈ε(j␈↓ 	F␈ε")
␈β`␈↓ ∧↑␈ε+r␈↓ ¬H␈ε+r␈↓ ¬V␈ε9␈␈ε%1␈↓ πI␈ε%1␈↓ λC␈ε%0
␈β
'␈↓ α≡␈ε"sh␈α↓ould␈α∂be␈α∞put␈α∂on␈α␈to␈α∂stack␈↓ ¬@␈ε(V␈↓ ¬l␈ε"in␈α∂the␈α∂same␈α∞w␈α␈a␈α␈y.␈α→A$er␈α∞this␈α∂has␈α∂been␈α∞done,
␈β
R␈↓ α≡␈ε"rem␈α↓o␈α␈v␈α␈e␈↓ β~␈ε(V␈↓ βE␈ε".␈αε.␈αε.␈↓ βu␈ε(V␈↓ ∧≤␈ε(V␈↓ ∧N␈ε"from␈αstack␈↓ εα␈ε(C␈↓ ε∨␈ε".
␈β
↑␈↓ β0␈ε+r␈↓ ∧␈ε%1␈↓ ∧2␈ε%0
␈β∞π␈↓ ↓\␈ε2C5.␈↓ α≠␈ε"[Recurse.]␈α~Successiv␈α␈ely␈αput␈αthe␈αfollo␈α␈wing␈α
items␈αon␈α␈to␈αstack␈↓ 	A␈ε(C␈↓ 	↑␈ε",␈αat␈αthe␈αsame
␈β∞2␈↓ α≡␈ε"time␈αempt␈α␈ying␈αstacks␈↓ ∧z␈ε(U␈↓ ¬#␈ε"and␈↓ ¬i␈ε(V␈↓ επ␈ε":
␈β∂␈↓ αy␈ε"code-2,␈↓ βs␈ε(V␈↓ ∧⊃␈ε"(2␈↓ ∧/␈ε(r␈↓ ∧@␈ε"),␈↓ ∧b␈ε(U␈↓ ∧␈␈ε"(2␈↓ ¬≥␈ε(r␈↓ ¬-␈ε"),␈↓ ¬O␈ε"code-3,␈↓ εI␈ε(V␈↓ εg␈ε"(2␈↓ π¬␈ε(r␈↓ π≡␈ε6␈␈ε"␈αλ1),␈↓ π}␈ε(U␈↓ λ≠␈ε"(2␈↓ λ9␈ε(r␈↓ λQ␈ε6␈␈ε"␈αλ1),␈↓ 	1␈ε".␈αε.␈αε.␈↓ 	a␈ε",
␈β∂6␈↓ ¬s␈ε"code-3,␈↓ εm␈ε(V␈↓ π␈ε"(1),␈↓ πK␈ε(U␈↓ πh␈ε"(1),␈αcode-3,␈↓ 	"␈ε(V␈↓ 	@␈ε"(0),␈↓ 
␈ε(U␈↓ 
≥␈ε"(0).
␈β⊂β␈↓ α≡␈ε"Go␈αback␈αto␈αstep␈αC3.
␈β⊂~␈↓ ∧U␈ε↓␈
␈β⊂9␈↓ ↓\␈ε2C6.␈↓ α≠␈ε"[Sa␈α␈v␈α␈e␈α
one␈α
product.]␈↓ ∧c␈ε"A␈α␈t␈α
this␈α	poin␈α␈t␈α
the␈α
m␈α␈ultiplication␈α
algorithm␈α	has␈α
set␈↓ 
h␈ε(w␈↓ ␈ε"to
␈β⊂E␈↓ εo␈ε↓↓
␈β⊂d␈↓ α≡␈ε"one␈α
of␈α
the␈α
products␈↓ ∧T␈ε(W␈↓ ∧x␈ε"(␈↓ ¬∧␈ε(j␈↓ ¬∃␈ε")␈α
=␈↓ ¬Y␈ε(U␈↓ ¬v␈ε"(␈↓ εα␈ε(j␈↓ ε∪␈ε")␈↓ ε∨␈ε(V␈↓ ε<␈ε"(␈↓ εH␈ε(j␈↓ εY␈ε").␈↓ ππ␈ε"Put␈↓ πK␈ε(w␈↓ πp␈ε"on␈α␈to␈α
stack␈↓ 	≠␈ε(W␈↓ 	?␈ε".␈α∩(This␈α	n␈α␈um␈α␈ber
␈β⊃∂␈↓ α≡␈ε(w␈↓ αE␈ε"con␈α␈tains␈α2(␈↓ βp␈ε(q␈↓ ∧≤␈ε"+␈↓ ∧H␈ε(q␈↓ ¬→␈ε")␈αbits.)␈α→Go␈αback␈αto␈αstep␈αC3.
␈β⊃≠␈↓ ∧α␈ε+k␈↓ ∧Z␈ε+k␈↓ ∧j␈ε9␈␈ε%1
␈β∪(

␈β↓U␈↓ ↓H␈ε"4.3.3␈↓ 
)␈ε"?␈↓ 
v␈ε"285
␈β↓\␈↓ εF␈ε∞H␈α↓O␈α␈W␈α
F␈α|AST␈α
CA␈α↓N␈α	W␈α↓E␈α
MUL␈α}TI␈α↓P␈α␈L␈α}Y
␈βα"␈↓ ↓\␈ε2C7.␈↓ α≠␈ε"[Find␈↓ α|␈ε(∩␈↓ β∞␈ε"'s.]␈α≠Set␈↓ ∧∀␈ε(r␈↓ ∧1␈ε6␈ ␈↓ ∧a␈ε(r␈↓ ¬β␈ε",␈↓ ¬≠␈ε(q␈↓ ¬:␈ε6␈ ␈↓ ¬j␈ε(q␈↓ ε∞␈ε",␈ε(␈α
p␈ε6␈α
␈ ␈↓ εt␈ε(q␈↓ πM␈ε"+␈↓ πz␈ε(q␈↓ λ≡␈ε".␈α≤(A␈α␈t␈α
this␈α
poin␈α␈t␈α
stack␈↓ 	␈ε(W
␈βα/␈↓ ∧q␈ε+k␈↓ ¬|␈ε+k␈↓ π¬␈ε+k␈↓ π⊗␈ε9␈␈ε%1␈↓ λ␈ε+k
␈βαM␈↓ α≡␈ε"con␈α␈tains␈α
a␈α
sequence␈α∞of␈α
n␈α␈um␈α␈bers␈α
ending␈α
with␈↓ πe␈ε(W␈↓ λ	␈ε"(0),␈↓ λJ␈ε(W␈↓ λn␈ε"(1),␈↓ 	0␈ε".␈αε.␈αε.␈↓ 	`␈ε",␈↓ 	w␈ε(W␈↓ 
≠␈ε"(2␈↓ 
9␈ε(r␈↓ 
I␈ε")␈α
from
␈βαy␈↓ α≡␈ε"bottom␈αto␈αtop,␈αwhere␈αeach␈↓ ¬L␈ε(W␈↓ ¬p␈ε"(␈↓ ¬|␈ε(j␈↓ ε
␈ε")␈αis␈αa␈α2␈ε(p␈ε"-bit␈αn␈α␈um␈α␈ber.)
␈ββ%␈↓ αb␈ε"No␈α␈w␈α
for␈↓ βo␈ε(j␈↓ ∧␈ε"=␈α1,␈α
2,␈α
3,␈↓ ¬7␈ε".␈αε.␈αε.␈↓ ¬g␈ε",␈α∞2␈↓ ε⊃␈ε(r␈↓ ε!␈ε",␈α
perform␈α
the␈α
follo␈α␈wing␈α
lo␈α↓op:␈α∞F␈α⎇or␈ε(␈α
t␈ε"␈α=␈α2␈↓ ∩␈ε(r␈↓ "␈ε",
␈ββ2␈↓ εa␈ε↓␈␈↓ 	α␈ε↓↓␈↓ 	[␈ε↓␈
␈ββQ␈↓ α≡␈ε"2␈↓ α0␈ε(r␈↓ αJ␈ε6␈␈ε"␈α
1,␈α∂2␈↓ β5␈ε(r␈↓ βP␈ε6␈␈ε"␈α	2,␈↓ ∧)␈ε".␈αε.␈αε.␈↓ ∧Y␈ε",␈↓ ∧r␈ε(j␈↓ ¬β␈ε",␈α∂set␈↓ ¬W␈ε(W␈↓ ¬{␈ε"(␈ε(t␈ε")␈ε6␈α∂␈ ␈↓ εo␈ε(W␈↓ π∪␈ε"(␈ε(t␈ε")␈ε6␈α
␈␈↓ πp␈ε(W␈↓ λ∪␈ε"(␈ε(t␈ε6␈α
␈␈ε"␈α
1)␈↓ 	⊂␈ε"/␈↓ 	"␈ε(j␈↓ 	3␈ε".␈↓ 	i␈ε"Here␈↓ 
@␈ε(j␈↓ 
←␈ε"m␈α␈ust
␈ββ]␈↓ πC␈ε↓␈␈↓ 	I␈ε↓↓
␈ββ|␈↓ α≡␈ε"increase␈α
and␈ε(␈α	t␈ε"␈α
m␈α␈ust␈α	decrease.␈α∂The␈α
quan␈α␈tit␈α␈y␈↓ πQ␈ε(W␈↓ πu␈ε"(␈ε(t␈ε")␈ε6␈αβ␈␈↓ λD␈ε(W␈↓ λh␈ε"(␈ε(t␈ε6␈αβ␈␈ε"␈αβ1)␈↓ 	W␈ε"/␈↓ 	i␈ε(j␈↓ 
∧␈ε"will␈α	alw␈α␈a␈α␈ys
␈β∧λ␈↓ λX␈ε↓↓
␈β∧'␈↓ α≡␈ε"be␈αa␈αn␈α↓onnegativ␈α␈e␈αin␈α␈teger␈αthat␈α|ts␈αin␈α2␈ε(p␈ε"␈αbits;␈αcf.␈α(15).
␈β∧c␈↓ ↓\␈ε2C8.␈↓ α≠␈ε"[Find␈↓ αz␈ε(W␈↓ β≡␈ε"'s.]␈α∀F␈α⎇or␈↓ ∧≡␈ε(j␈↓ ∧9␈ε"=␈α
2␈↓ ∧y␈ε(r␈↓ ¬∂␈ε6␈␈ε"␈α¬1,␈α2␈↓ ¬q␈ε(r␈↓ επ␈ε6␈␈ε"␈αε2,␈↓ εX␈ε".␈αε.␈αε.␈↓ πλ␈ε",␈α1,␈αperform␈αthe␈α
follo␈α␈wing␈αlo␈α↓op:␈αF␈α⎇or
␈β∧p␈↓ 	\␈ε↓␈
␈β¬∂␈↓ α≡␈ε(t␈ε"␈α∞=␈↓ αj␈ε(j␈↓ α{␈ε",␈↓ β∪␈ε(j␈↓ β.␈ε"+␈α	1,␈↓ ∧ε␈ε".␈αε.␈αε.␈↓ ∧6␈ε",␈α∞2␈↓ ∧`␈ε(r␈↓ ∧z␈ε6␈␈ε"␈α	1,␈α∂set␈↓ ε␈ε(W␈↓ ε/␈ε"(␈ε(t␈ε"␈α↓)␈ε6␈α
␈ ␈↓ π∪␈ε(W␈↓ π7␈ε"(␈ε(t␈ε")␈ε6␈α
␈␈↓ λ∪␈ε(j␈↓ λ$␈ε(W␈↓ λH␈ε"(␈ε(t␈ε"␈α	+␈α
1).␈↓ 	j␈ε"Here␈↓ 
@␈ε(j␈↓ 
←␈ε"m␈α␈ust
␈β¬:␈↓ α≡␈ε"decrease␈α
and␈ε(␈α
t␈ε"␈α
m␈α␈ust␈α
increase.␈α∪The␈α
result␈α
of␈α
this␈α
operation␈α
will␈α
again␈αbe␈α
a
␈β¬F␈↓ εH␈ε↓↓
␈β¬e␈↓ α≡␈ε"n␈α↓onnegativ␈α␈e␈α2␈ε(p␈ε"-bit␈αin␈α␈teger;␈αcf.␈α(17).
␈βε"␈↓ ↓\␈ε2C9.␈↓ α≠␈ε"[Set␈αansw␈α␈er.]␈α→Set␈↓ ∧9␈ε(w␈↓ ∧`␈ε"to␈αthe␈α2(␈↓ ¬h␈ε(q␈↓ ε∀␈ε"+␈↓ ε@␈ε(q␈↓ π⊃␈ε")-bit␈αin␈α␈teger
␈βε.␈↓ ¬z␈ε+k␈↓ εR␈ε+k␈↓ εc␈ε%+␈α␈1
␈βε↑␈↓ β(␈ε↓␈␈↓ βl␈ε↓␈␈↓ εT␈ε↓↓␈↓ λe␈ε↓↓
␈βεu␈↓ ∧j␈ε+q␈↓ εt␈ε+q␈↓ 	¬␈ε+q
␈βε⎇␈↓ β<␈ε".␈αε.␈αε.␈↓ βz␈ε(W␈↓ ∧≡␈ε"(2␈↓ ∧<␈ε(r␈↓ ∧L␈ε")␈↓ ∧X␈ε"2␈↓ ¬∧␈ε"+␈↓ ¬0␈ε(W␈↓ ¬S␈ε"(2␈↓ ¬q␈ε(r␈↓ ε
␈ε6␈␈ε"␈αλ1)␈↓ εb␈ε"2␈↓ π∞␈ε"+␈↓ π:␈ε6↓␈αε↓␈αε↓␈↓ πl␈ε"+␈↓ λ_␈ε(W␈↓ λ;␈ε"(1)␈↓ λs␈ε"2␈↓ 	∨␈ε"+␈↓ 	K␈ε(W␈↓ 	o␈ε"(0).
␈βπX␈↓ α≡␈ε"Rem␈α↓o␈α␈v␈α␈e␈↓ β(␈ε(W␈↓ βL␈ε"(2␈↓ βj␈ε(r␈↓ βz␈ε"),␈↓ ∧≤␈ε".␈αε.␈αε.␈↓ ∧L␈ε",␈↓ ∧b␈ε(W␈↓ ¬ε␈ε"(0)␈αfrom␈αstack␈↓ εp␈ε(W␈↓ π∀␈ε".
␈βλ∀␈↓ ↓J␈ε2C10.␈↓ α≠␈ε"[Return.]␈α≤Set␈↓ ∧∧␈ε(k␈↓ ∧$␈ε6␈ ␈↓ ∧T␈ε(k␈↓ ∧q␈ε"+␈α	1.␈α∪Rem␈α↓o␈α␈v␈α␈e␈α∞the␈α
top␈α
of␈α
stack␈↓ λc␈ε(C␈↓ 	␈ε".␈α∪If␈α∞it␈α
is␈α
code-3,␈α
go
␈βλ@␈↓ α≡␈ε"to␈α
step␈αC6.␈α⊃If␈α
it␈αis␈α
code-2,␈α
put␈↓ ε	␈ε(w␈↓ ε0␈ε"on␈α␈to␈α
stack␈↓ π`␈ε(W␈↓ λ⊃␈ε"and␈αgo␈α
to␈αstep␈α
C7.␈α⊃And␈αif
␈βλk␈↓ α≡␈ε"it␈αis␈↓ αf␈ε"code-1␈↓ βJ␈ε",␈αterminate␈αthe␈αalgorithm␈α(␈↓ εr␈ε(w␈↓ π→␈ε"is␈αthe␈αansw␈α␈er).
␈βλt␈↓ 	$␈∧λt	$≠∂
␈β	7␈↓ α␈ε"Let␈α∞us␈α
n␈α↓o␈α␈w␈α∞estimate␈α∞the␈α∞running␈α
time,␈↓ π∧␈ε(T␈↓ π≡␈ε"(␈ε(n␈ε"),␈α∞for␈α∞Algorithm␈α
C,␈α∞in␈α∞terms␈α
of
␈β	b␈↓ ↓H␈ε"some␈αthings␈αw␈α␈e␈αshall␈αcall␈α\cy␈α␈cles,"␈αi.e.,␈αelemen␈α␈tary␈αmachine␈αoperations.␈α⊂Step␈αC1
␈β

␈↓ ↓H␈ε"tak␈α␈es␈↓ α#␈ε(O␈↓ α@␈ε"(␈↓ αL␈ε(q␈↓ αp␈ε")␈α
cy␈α␈cles,␈αev␈α␈en␈α
if␈αw␈α␈e␈α
represen␈α␈t␈αthe␈α
n␈α␈um␈α␈ber␈↓ πp␈ε(q␈↓ λ≡␈ε"in␈α␈ternally␈αas␈α
a␈αlong␈α
string
␈β
~␈↓ α]␈ε+k␈↓ λα␈ε+k
␈β
8␈↓ ↓H␈ε"of␈↓ ↓q␈ε(q␈↓ α ␈ε"bits␈αfollo␈α␈w␈α␈ed␈αby␈αsome␈αdelimiter,␈αsince␈↓ εv␈ε(q␈↓ π!␈ε"+␈↓ πK␈ε(q␈↓ λ#␈ε"+␈↓ λN␈ε6↓␈αε↓␈αε↓␈↓ λ}␈ε"+␈↓ 	)␈ε(q␈↓ 	W␈ε"will␈αbe␈↓ 
J␈ε(O␈↓ 
g␈ε"(␈↓ 
s␈ε(q␈↓ ⊗␈ε").
␈β
E␈↓ αβ␈ε+k␈↓ πλ␈ε+k␈↓ π]␈ε+k␈↓ πn␈ε9␈␈ε%␈α␈1␈↓ 	;␈ε%0␈↓ ∧␈ε+k
␈β
d␈↓ ↓H␈ε"Step␈αC2␈αobviously␈αtak␈α␈es␈↓ ∧O␈ε(O␈↓ ∧k␈ε"(␈↓ ∧w␈ε(q␈↓ ¬≠␈ε")␈αcy␈α␈cles.
␈β
p␈↓ ¬	␈ε+k
␈β⊂␈↓ α␈ε"No␈α␈w␈αλlet␈↓ β␈ε(t␈↓ β4␈ε"den␈α↓ote␈αλthe␈αλam␈α↓oun␈α␈t␈α	of␈αλcomputation␈αλrequired␈α	to␈αλget␈αλfrom␈α	step␈αλC3␈αλto
␈β≥␈↓ β→␈ε+k
␈β<␈↓ ↓H␈ε"step␈αλC10␈α	for␈αλa␈α	particular␈αλv␈α}alue␈αλof␈↓ ¬H␈ε(k␈↓ ¬e␈ε"(a$er␈↓ εC␈ε(k␈↓ ε`␈ε"has␈αλbeen␈α	decreased␈αλat␈α	the␈αλbeginning␈αλof
␈βg␈↓ ↓H␈ε"step␈αλC3).␈α∂Step␈αλC3␈αλrequires␈↓ ∧e␈ε(O␈↓ ¬α␈ε"(␈↓ ¬∞␈ε(q␈↓ ¬!␈ε")␈αλcy␈α␈cles␈αλat␈αλm␈α↓ost.␈α∂Step␈αλC4␈α	in␈α␈v␈α␈olv␈α␈es␈↓ 	+␈ε(r␈↓ 	C␈ε"m␈α␈ultiplications
␈β∩␈↓ ↓H␈ε"of␈ε(␈α∂p␈ε"-bit␈α∂n␈α␈um␈α␈bers␈α∂by␈α⊂(␈↓ ∧$␈ε"lg␈↓ ∧F␈ε"2␈↓ ∧X␈ε(r␈↓ ∧h␈ε")-bit␈α∂n␈α␈um␈α␈bers,␈α⊃and␈↓ π#␈ε(r␈↓ πC␈ε"additions␈α∂of␈ε(␈α∂p␈ε"-bit␈α∂n␈α␈um␈α␈bers,␈α⊂all
␈β7␈↓ λ"␈ε%2
␈β=␈↓ ↓H␈ε"repeated␈α∂4␈↓ αo␈ε(r␈↓ β
␈ε"+␈α
2␈α⊂times.␈α~Th␈α␈us␈α⊂w␈α␈e␈α∂need␈α⊂a␈α∂total␈α⊂of␈↓ πi␈ε(O␈↓ λε␈ε"(␈↓ λ∩␈ε(r␈↓ λ3␈ε(q␈↓ λL␈ε"log␈↓ 	␈ε(r␈↓ 	⊃␈ε")␈α∂cy␈α␈cles.␈α≠Step␈α∂C5
␈βh␈↓ ↓H␈ε"requires␈α⊃m␈α↓o␈α␈ving␈α⊃4␈↓ βi␈ε(r␈↓ ∧¬␈ε"+␈α2␈ε(␈α⊃p␈ε"-bit␈α∩n␈α␈um␈α␈bers,␈α∩so␈α∩it␈α⊃in␈α␈v␈α␈olv␈α␈es␈↓ λ<␈ε(O␈↓ λX␈ε"(␈↓ λd␈ε(r␈↓ λu␈ε(q␈↓ 	λ␈ε")␈α⊃cy␈α␈cles.␈α Step␈α⊃C6
␈β
∀␈↓ ↓H␈ε"requires␈↓ αQ␈ε(O␈↓ αm␈ε"(␈↓ αy␈ε(q␈↓ β␈ε")␈α∂cy␈α␈cles,␈α⊂and␈α∞it␈α∂is␈α∂done␈α∂2␈↓ ε≤␈ε(r␈↓ ε6␈ε"+␈α
1␈α∂times␈α∂per␈α∂iteration.␈α→The␈α∞recursion
␈β
?␈↓ ↓H␈ε"in␈α␈v␈α␈olv␈α␈ed␈αwhen␈α
the␈α
algorithm␈α
essen␈α␈tially␈α
in␈α␈v␈α␈ok␈α␈es␈αitself␈α
(by␈α
returning␈α
to␈α
step␈αC3)
␈β
d␈↓ λC␈ε%2
␈β
j␈↓ ↓H␈ε"requires␈↓ αN␈ε(t␈↓ β&␈ε"cy␈α␈cles,␈α2␈↓ ∧(␈ε(r␈↓ ∧A␈ε"+␈αλ1␈αtimes.␈α⊃Step␈αC7␈αrequires␈↓ λ
␈ε(O␈↓ λ'␈ε"(␈↓ λ3␈ε(r␈↓ λT␈ε")␈αsubtractions␈αof␈ε(␈αp␈ε"-bit
␈β
v␈↓ α[␈ε+k␈↓ αl␈ε9␈␈ε%␈α␈1
␈β∞∂␈↓ 
2␈ε%2
␈β∞∃␈↓ ↓H␈ε"n␈α␈um␈α␈bers␈α
and␈αdivisions␈αof␈α2␈ε(p␈ε"-bit␈αby␈α
(␈↓ ¬z␈ε"lg␈↓ ε≤␈ε"2␈↓ ε.␈ε(r␈↓ ε?␈ε")-bit␈αn␈α␈um␈α␈bers,␈αso␈α
it␈αrequires␈↓ 	y␈ε(O␈↓ 
⊗␈ε"(␈↓ 
"␈ε(r␈↓ 
C␈ε(q␈↓ 
\␈ε"log␈↓ ⊂␈ε(r␈↓  ␈ε")
␈β∞:␈↓ ε6␈ε%2
␈β∞@␈↓ ↓H␈ε"cy␈α␈cles.␈α_Similarly,␈α∂step␈α∂C8␈α∂requires␈↓ ¬⎇␈ε(O␈↓ ε→␈ε"(␈↓ ε%␈ε(r␈↓ εF␈ε(q␈↓ ε`␈ε"log␈↓ π∀␈ε(r␈↓ π$␈ε")␈α∂cy␈α␈cles.␈α_Step␈α∂C9␈α∂in␈α␈v␈α␈olv␈α␈es␈↓ 
T␈ε(O␈↓ 
q␈ε"(␈↓ 
⎇␈ε(r␈↓ 
␈ε(q␈↓  ␈ε")
␈β∞l␈↓ ↓H␈ε"cy␈α␈cles,␈αand␈αC10␈αtak␈α␈es␈αhardly␈αan␈α␈y␈αtime␈αat␈αall.
␈β∂→␈↓ α␈ε"Summing␈αup,␈αw␈α␈e␈αha␈α␈v␈α␈e␈↓ ∧o␈ε(T␈↓ ¬	␈ε"(␈ε(n␈ε")␈α
=␈↓ ¬o␈ε(O␈↓ ε␈ε"(␈↓ ε↔␈ε(q␈↓ ε;␈ε")␈απ+␈↓ εx␈ε(O␈↓ π∃␈ε"(␈↓ π!␈ε(q␈↓ πE␈ε")␈αε+␈↓ λα␈ε(t␈↓ λN␈ε",␈αwhere␈α(if␈↓ 	x␈ε(q␈↓ 
∃␈ε"=␈↓ 
C␈ε(q␈↓ 
r␈ε"and
␈β∂%␈↓ ε)␈ε+k␈↓ π3␈ε+k␈↓ λ∂␈ε+k␈↓ λ ␈ε9␈␈ε%␈α␈1␈↓ 
U␈ε+k
␈β∂D␈↓ ↓H␈ε(r␈↓ ↓b␈ε"=␈↓ α⊂␈ε(r␈↓ α2␈ε")␈αthe␈αmain␈αcon␈α␈tribution␈αto␈αthe␈αrunning␈αtime␈αsatis|es
␈β∂P␈↓ α ␈ε+k
␈β⊂_␈↓ βf␈ε%2␈↓ λV␈ε%2
␈β⊂∨␈↓ ↓Z␈ε(t␈↓ α∧␈ε"=␈↓ α2␈ε(O␈↓ αN␈ε"(␈↓ αZ␈ε(q␈↓ αm␈ε")␈αλ+␈↓ β-␈ε(O␈↓ βJ␈ε"(␈↓ βV␈ε(r␈↓ βw␈ε(q␈↓ ∧⊂␈ε"log␈↓ ∧D␈ε(r␈↓ ∧U␈ε")␈αλ+␈↓ ¬∃␈ε(O␈↓ ¬1␈ε"(␈↓ ¬=␈ε(r␈↓ ¬N␈ε(q␈↓ ¬a␈ε")␈αλ+␈αλ(2␈↓ ε?␈ε(r␈↓ εW␈ε"+␈αλ1)␈↓ π!␈ε(O␈↓ π>␈ε"(␈↓ πJ␈ε(q␈↓ π]␈ε")␈αλ+␈↓ λ≥␈ε(O␈↓ λ:␈ε"(␈↓ λF␈ε(r␈↓ λg␈ε(q␈↓ 	␈ε"log␈↓ 	4␈ε(r␈↓ 	E␈ε")
␈β⊂,␈↓ ↓h␈ε+k
␈β⊂N␈↓ ε↔␈ε%2
␈β⊂U␈↓ ¬2␈ε"+␈↓ ¬↑␈ε(O␈↓ ¬z␈ε"(␈↓ εε␈ε(r␈↓ ε(␈ε(q␈↓ εA␈ε"log␈↓ εu␈ε(r␈↓ π¬␈ε")␈αλ+␈↓ πE␈ε(O␈↓ πb␈ε"(␈↓ πn␈ε(r␈↓ π}␈ε(q␈↓ λ⊃␈ε")␈αλ+␈↓ λQ␈ε(O␈↓ λn␈ε"(␈↓ λz␈ε(q␈↓ 	
␈ε")␈αλ+␈αλ(2␈↓ 	k␈ε(r␈↓ 
β␈ε"+␈αλ1)␈↓ 
M␈ε(t
␈β⊂b␈↓ 
[␈ε+k␈↓ 
k␈ε9␈␈ε%1
␈β⊃∞␈↓ αk␈ε%2
␈β⊃⊗␈↓ α∧␈ε"=␈↓ α2␈ε(O␈↓ αN␈ε"(␈↓ αZ␈ε(r␈↓ α|␈ε(q␈↓ β∃␈ε"log␈↓ βI␈ε(r␈↓ βY␈ε")␈αλ+␈αλ(2␈↓ ∧7␈ε(r␈↓ ∧P␈ε"+␈αλ1)␈↓ ¬~␈ε(t␈↓ ¬f␈ε".
␈β⊃#␈↓ ¬'␈ε+k␈↓ ¬8␈ε9␈␈ε%␈α␈1
␈β∪(

␈β↓U␈↓ ↓H␈ε"286␈↓ 
b␈ε"4.3.3
␈β↓\␈↓ α=␈ε∞ARITH␈α↓MET␈α↓IC
␈βα$␈↓ ↓H␈ε"Th␈α␈us␈αthere␈αis␈αa␈αconstan␈α␈t␈ε(␈αc␈ε"␈αsuch␈αthat
␈βαv␈↓ ¬(␈ε%2
␈βα}␈↓ ∧1␈ε(t␈↓ ∧Z␈ε6∀␈ε(␈α
c␈↓ ¬↔␈ε(r␈↓ ¬:␈ε(q␈↓ ¬d␈ε"lg␈↓ εε␈ε(r␈↓ ε0␈ε"+␈αλ(2␈↓ εz␈ε(r␈↓ π#␈ε"+␈αλ1)␈↓ πm␈ε(t␈↓ λ9␈ε".
␈ββ␈↓ ∧>␈ε+k␈↓ ¬L␈ε+k␈↓ ε∃␈ε+k␈↓ π	␈ε+k␈↓ πz␈ε+k␈↓ λ␈ε9␈␈ε%1
␈ββ∂␈↓ ¬(␈ε+k
␈ββX␈↓ ↓H␈ε"T␈α⎇o␈αcomplete␈αthe␈αestimation␈αof␈↓ ¬-␈ε(t␈↓ ¬X␈ε"w␈α␈e␈αcan␈αpro␈α␈v␈α␈e␈αby␈αbrute␈αforce␈αthat
␈ββe␈↓ ¬:␈ε+k
␈β∧0␈↓ εv␈ε6p
␈β∧3␈↓ π∀␈∧∧3π∀αf
␈β∧5␈↓ εO␈ε%2.5␈↓ π→␈ε%lg␈↓ π6␈ε+q
␈β∧=␈↓ ∧y␈ε(t␈↓ ¬"␈ε6∀␈↓ ¬P␈ε(C␈↓ ¬l␈ε(q␈↓ ε=␈ε"2␈↓ 
p␈ε"(18)
␈β∧?␈↓ πE␈ε-k␈↓ πS␈ε'+1
␈β∧J␈↓ ¬ε␈ε+k␈↓ ¬}␈ε+k␈↓ ε∂␈ε%+␈α␈1
␈β¬_␈↓ ↓H␈ε"for␈α	some␈α	constan␈α␈t␈↓ βb␈ε(C␈↓ β␈␈ε".␈α∂Let␈α	us␈α	ch␈α↓o␈α↓ose␈↓ ¬t␈ε(C␈↓ ε~␈ε">␈α
20␈ε(c␈ε",␈α
and␈α	let␈α
us␈α	also␈α	tak␈α␈e␈↓ 	A␈ε(C␈↓ 	f␈ε"large␈α	en␈α↓ough
␈β¬C␈↓ ↓H␈ε"so␈α∞that␈α∞(18)␈α∞is␈α∞v␈α}alid␈α∂for␈↓ ∧J␈ε(k␈↓ ∧l␈ε6∀␈↓ ¬≥␈ε(k␈↓ ¬A␈ε",␈α∂where␈↓ εD␈ε(k␈↓ εv␈ε"will␈α∞be␈α∞speci|ed␈α∂belo␈α␈w.␈α⊗Then␈α∞when
␈β¬O␈↓ ¬0␈ε%0␈↓ εW␈ε%0
␈β¬n␈↓ ↓H␈ε(k␈↓ ↓f␈ε">␈↓ α∀␈ε(k␈↓ α8␈ε",␈αlet␈↓ βα␈ε(Q␈↓ β:␈ε"=␈↓ βh␈ε"lg␈↓ ∧
␈ε(q␈↓ ∧.␈ε",␈↓ ∧D␈ε(R␈↓ ∧|␈ε"=␈↓ ¬*␈ε"lg␈↓ ¬L␈ε(r␈↓ ¬n␈ε";␈αw␈α␈e␈αha␈α␈v␈α␈e␈αby␈αinduction
␈β¬z␈↓ α'␈ε%0␈↓ β≡␈ε+k␈↓ ∧≤␈ε+k␈↓ ∧`␈ε+k␈↓ ¬\␈ε+k
␈βεF␈↓ ε1␈ε6p
␈βεG␈↓ λV␈ε6p
␈βεI␈↓ εO␈∧εIεOα'
␈βεJ␈↓ λt␈∧εJλtαf
␈βεL␈↓ β⊗␈ε%2␈↓ ε
␈ε%2.5␈↓ εO␈ε+Q␈↓ λ.␈ε%2␈α↓.␈α␈5␈↓ λx␈ε%lg␈↓ 	∃␈ε+q
␈βεT␈↓ ↓{␈ε(t␈↓ α%␈ε6∀␈ε(␈α
c␈↓ αb␈ε(q␈↓ βε␈ε(r␈↓ β.␈ε"lg␈↓ βP␈ε(r␈↓ βz␈ε"+␈αλ(2␈↓ ∧D␈ε(r␈↓ ∧n␈ε"+␈αλ1)␈↓ ¬8␈ε(C␈↓ ¬T␈ε(q␈↓ ¬x␈ε"2␈↓ π↓␈ε"=␈↓ π/␈ε(C␈↓ πL␈ε(q␈↓ λ≤␈ε"2␈↓ 	[␈ε"(␈↓ 	g␈ε(⊃␈↓ 
∪␈ε"+␈↓ 
?␈ε(⊃␈↓ 
c␈ε"),
␈βεV␈↓ εg␈ε-k␈↓ 	$␈ε-k␈↓ 	2␈ε'+␈α↓1
␈βε`␈↓ αλ␈ε+k␈↓ αt␈ε+k␈↓ β`␈ε+k␈↓ ∧T␈ε+k␈↓ ¬f␈ε+k␈↓ π↑␈ε+k␈↓ πn␈ε%+1␈↓ 	z␈ε%1␈↓ 
R␈ε%2
␈βεe␈↓ β⊗␈ε+k
␈βπ.␈↓ ↓H␈ε"where
␈βπM␈↓ ∧
␈ε(c␈↓ π␈ε"1
␈βπX␈↓ ¬O␈ε6p
␈βπ[␈↓ ¬m␈∧π[¬mαM
␈βπ]␈↓ ∧d␈ε+R␈↓ ¬␈ε9␈␈ε%␈α␈2.5␈↓ ¬m␈ε+Q␈↓ π`␈ε9␈␈↓ π⎇␈ε+R
␈βπe␈↓ β$␈ε(⊃␈↓ βR␈ε"=␈↓ ∧$␈ε(R␈↓ ∧R␈ε"2␈↓ εE␈ε"<␈↓ π∨␈ε(R␈↓ πN␈ε"2␈↓ λ/␈ε"<␈α
0.05,
␈βπf␈↓ ∧{␈ε-k␈↓ ε¬␈ε-k␈↓ ε∪␈ε'+1␈↓ λ∀␈ε-k
␈βπq␈↓ β7␈ε%1␈↓ ∧@␈ε+k␈↓ π;␈ε+k
␈βπy␈↓ ∧∧␈∧πy∧∧α≥␈↓ εw␈∧πyεwα$
␈βπ}␈↓ ∧∧␈ε(C␈↓ εw␈ε"20
␈βλ/␈↓ ∧␈ε↓∩␈↓ ¬¬␈ε↓∪
␈βλ0␈↓ ∧h␈ε"1
␈βλ:␈↓ ¬←␈ε6p
␈βλ;␈↓ εA␈ε6p
␈βλ=␈↓ ¬⎇␈∧λ=¬⎇α'
␈βλ>␈↓ ε←␈∧λ>ε←αM
␈βλ@␈↓ ¬-␈ε%2␈α↓.␈α␈5␈α↓(␈↓ ¬⎇␈ε+Q␈↓ ε$␈ε9␈␈↓ ε←␈ε+Q␈↓ π,␈ε%)␈↓ λα␈ε9␈␈ε%␈α␈1/␈α↓4
␈βλH␈↓ β$␈ε(⊃␈↓ βR␈ε"=␈↓ ∧⊗␈ε"2␈αλ+␈↓ ¬≠␈ε"2␈↓ πB␈ε6!␈↓ πp␈ε"2␈↓ λX␈ε"<␈α
0.85,
␈βλJ␈↓ ε∀␈ε-k␈↓ εw␈ε-k␈↓ π¬␈ε'+1
␈βλT␈↓ β7␈ε%2
␈βλ\␈↓ ∧`␈∧λ\∧`α"
␈βλb␈↓ ∧`␈ε(r
␈βλn␈↓ ∧o␈ε+k
␈β	$␈↓ ↓H␈ε"since
␈β	/␈↓ ¬t␈ε↓q
␈β	?␈↓ ∧i␈ε↓p␈↓ πλ␈ε↓p␈↓ λ≥␈ε↓p
␈β	A␈↓ β5␈ε↓p
␈β	M␈↓ ε_␈∧	Mε_α↓R
␈β	]␈↓ ¬
␈∧	]¬
α/␈↓ π,␈∧	]π,α/␈↓ λA␈∧	]λAα/␈↓ 	,␈ε%1
␈β	←␈↓ βY␈∧	←βYα\
␈β	a␈↓ βY␈ε(Q␈↓ ∧=␈ε6␈␈↓ ¬
␈ε(Q␈↓ ¬F␈ε"=␈↓ ε_␈ε(Q␈↓ εN␈ε"+␈ε6␈αλb␈↓ π,␈ε(Q␈↓ π[␈ε6c␈↓ πq␈ε6␈␈↓ λA␈ε(Q␈↓ λz␈ε6!
␈β	m␈↓ βv␈ε+k␈↓ ∧ε␈ε%+1␈↓ ¬)␈ε+k␈↓ ε4␈ε+k␈↓ πI␈ε+k␈↓ λ]␈ε+k
␈β	r␈↓ 	,␈ε%2
␈β	u␈↓ 	,␈∧	u	,α⊂
␈β
)␈↓ ↓H␈ε"as␈↓ ↓u␈ε(k␈↓ α⊗␈ε6!␈α
1␈ε".␈α∀It␈α∞follo␈α␈ws␈α
that␈α∞w␈α␈e␈α∞can␈α
|nd␈↓ ε=␈ε(k␈↓ εn␈ε"such␈α∞that␈↓ λ⊃␈ε(⊃␈↓ λB␈ε"<␈α
0.95␈α
for␈α∞all␈↓ 
-␈ε(k␈↓ 
N␈ε">␈↓ 
␈␈ε(k␈↓ "␈ε",
␈β
6␈↓ εP␈ε%0␈↓ λ%␈ε%2␈↓ ∩␈ε%0
␈β
T␈↓ ↓H␈ε"and␈αthis␈αcompletes␈αthe␈αpro␈α↓of␈αof␈α(18)␈αby␈αinduction.
␈β↓␈↓ α␈ε"Finally,␈αtherefore,␈αw␈α␈e␈α
ma␈α␈y␈αcompute␈↓ εB␈ε(T␈↓ ε[␈ε"(␈ε(n␈ε").␈α⊂Since␈ε(␈α
n␈ε"␈α
>␈↓ λM␈ε(q␈↓ 	#␈ε"+␈↓ 	L␈ε(q␈↓ 
≥␈ε",␈αw␈α␈e␈α
ha␈α␈v␈α␈e
␈β
␈↓ λ←␈ε+k␈↓ λo␈ε9␈␈ε%1␈↓ 	↑␈ε+k␈↓ 	o␈ε9␈␈ε%␈α␈2
␈β,␈↓ ↓H␈ε(q␈↓ α"␈ε"<␈ε(␈α
n␈ε";␈αhence
␈β9␈↓ ↓Y␈ε+k␈↓ ↓j␈ε9␈␈ε%1
␈β∧␈↓ β+␈ε6p␈↓ ¬π␈ε6p␈↓ 
∂␈ε6p
␈βπ␈↓ βI␈∧πβIαf␈↓ ¬%␈∧π¬%α5␈↓ 
-␈∧π
-α5
␈β
␈↓ β∨␈ε9b␈↓ βN␈ε%lg␈↓ βk␈ε+q␈↓ ∧/␈ε9c␈↓ ¬)␈ε%lg␈↓ ¬F␈ε+n␈↓ 
2␈ε%lg␈↓ 
O␈ε+n
␈β∩␈↓ απ␈ε(r␈↓ α←␈ε"=␈↓ β
␈ε"2␈↓ ∧G␈ε"<␈↓ ∧u␈ε"2␈↓ ¬Z␈ε",␈↓ ε2␈ε"and␈↓ π4␈ε(q␈↓ πb␈ε"=␈↓ λ⊂␈ε(r␈↓ λ←␈ε(q␈↓ 	:␈ε"<␈ε(␈α
n␈↓ 	⎇␈ε"2␈↓ 
c␈ε".
␈β∀␈↓ βz␈ε-k␈↓ ∧λ␈ε;␈␈ε'␈α↓1
␈β∨␈↓ α⊗␈ε+k␈↓ α'␈ε9␈␈ε%1␈↓ πF␈ε+k␈↓ λ ␈ε+k␈↓ λ0␈ε9␈␈ε%1␈↓ λq␈ε+k␈↓ 	↓␈ε9␈␈ε%1
␈βl␈↓ ↓H␈ε"Th␈α␈us
␈β
∩␈↓ ¬+␈ε6p␈↓ ππ␈ε6p␈↓ λ-␈ε6p
␈β
∃␈↓ ¬I␈∧
∃¬Iα@␈↓ π%␈∧
∃π%α5␈↓ λK␈∧
∃λKα5
␈β
_␈↓ ¬∧␈ε%2.5␈↓ ¬N␈ε%lg␈↓ ¬k␈ε+q␈↓ π)␈ε%lg␈↓ πF␈ε+n␈↓ π↑␈ε%+␈α␈2.5(␈↓ λP␈ε%l␈α␈g␈↓ λl␈ε+n␈↓ 	∧␈ε%+␈α␈1␈α↓)
␈β
 ␈↓ β-␈ε(t␈↓ ∧∧␈ε6∀␈↓ ∧2␈ε(C␈↓ ∧N␈ε(q␈↓ ∧r␈ε"2␈↓ ε∃␈ε"<␈↓ εC␈ε(C␈↓ ε←␈ε(n␈↓ εu␈ε"2␈↓ 	=␈ε",
␈β
"␈↓ ¬z␈ε-k
␈β
-␈↓ β;␈ε+k␈↓ βK␈ε9␈␈ε%1␈↓ ∧`␈ε+k
␈β
h␈↓ ↓H␈ε"and,␈αsince␈↓ αo␈ε(T␈↓ β	␈ε"(␈ε(n␈ε"␈α␈)␈α
=␈↓ βn␈ε(O␈↓ ∧␈ε"(␈↓ ∧↔␈ε(q␈↓ ∧;␈ε")␈απ+␈↓ ∧y␈ε(t␈↓ ¬E␈ε",␈αw␈α␈e␈αha␈α␈v␈α␈e␈α|nally␈αderiv␈α␈ed␈αthe␈αfollo␈α␈wing␈αtheorem:
␈β
u␈↓ ∧)␈ε+k␈↓ ¬ε␈ε+k␈↓ ¬↔␈ε9␈␈ε%1
␈β∞2␈↓ ↓H␈ε2Theorem␈α
C.␈ε/␈α∀There␈α
is␈αa␈α
constan␈α␈t␈↓ ¬K␈ε(c␈↓ ¬u␈ε/such␈αthat␈α
the␈αexecution␈α
time␈αof␈α
Algorithm␈α
C
␈β∞>␈↓ ¬Z␈ε%0
␈β∞[␈↓ βq␈ε6p
␈β∞↑␈↓ ∧∂␈∧∞↑∧∂α5
␈β∞a␈↓ βI␈ε%3␈α↓.␈α␈5␈↓ ∧∪␈ε%lg␈↓ ∧0␈ε+n
␈β∞h␈↓ ↓H␈ε/is␈αless␈αthan␈↓ βα␈ε(c␈↓ β"␈ε(n␈↓ β7␈ε"2␈↓ ∧P␈ε/cy␈α␈cles.
␈β∞q␈↓ ¬\␈∧∞q¬\≠∂
␈β∞t␈↓ β⊃␈ε%0
␈β∂/␈↓ β>␈ε6p␈↓ ¬S␈ε6p
␈β∂2␈↓ β\␈∧∂2β\α5␈↓ ¬q␈∧∂2¬qα5
␈β∂6␈↓ β↔␈ε%3.5␈↓ βa␈ε%lg␈↓ β}␈ε+n␈↓ ∧p␈ε%1+3.5/␈↓ ¬v␈ε%lg␈↓ ε∪␈ε+n
␈β∂=␈↓ α␈ε"Since␈ε(␈α⊃n␈↓ β¬␈ε"2␈↓ ∧$␈ε"=␈↓ ∧Z␈ε(n␈↓ ε'␈ε",␈α∩this␈α⊃result␈α⊃is␈α⊃n␈α↓oticeably␈α⊃stronger␈α⊃than
␈β∂h␈↓ ↓H␈ε"Theorem␈αA␈↓ αz␈ε".␈α⊂By␈αadding␈αa␈αfew␈αcomplications␈αto␈αthe␈αalgorithm,␈αpushing␈αthe␈αideas
␈β⊂∪␈↓ ↓H␈ε"to␈α
their␈αapparen␈α␈t␈αlimits␈α
(see␈αexercise␈α
5),␈αw␈α␈e␈αcan␈αimpro␈α␈v␈α␈e␈α
the␈αestimated␈α
execution
␈β⊂>␈↓ ↓H␈ε"time␈αto
␈β⊂d␈↓ ε>␈ε6p
␈β⊂g␈↓ ε\␈∧⊂gε\αD
␈β⊂j␈↓ ε\␈ε%2␈↓ εp␈ε%l␈α␈g␈↓ π␈ε+n
␈β⊂r␈↓ ∧n␈ε(T␈↓ ¬λ␈ε"(␈ε(n␈ε"␈α␈)␈α
=␈↓ ¬m␈ε(O␈↓ ε
␈ε"(␈ε(n␈↓ ε,␈ε"2␈↓ π'␈ε"log␈↓ π[␈ε(n␈ε"␈α␈).␈↓ 
p␈ε"(19)
␈β∪(

␈β↓U␈↓ ↓H␈ε"4.3.3␈↓ 
)␈ε"?␈↓ 
v␈ε"287
␈β↓\␈↓ εF␈ε∞H␈α↓O␈α␈W␈α
F␈α|AST␈α
CA␈α↓N␈α	W␈α↓E␈α
MUL␈α}TI␈α↓P␈α␈L␈α}Y
␈βα$␈↓ ↓H␈ε2B.␈α∂A␈↓ α"␈ε2m␈α↓odular␈α∂meth␈α↓od.␈ε"␈α≡There␈α∂is␈α∂an␈α↓other␈α∂w␈α␈a␈α␈y␈α∂to␈α∂m␈α␈ultiply␈α∂large␈α∂n␈α␈um␈α␈bers␈α∂v␈α␈ery
␈βαO␈↓ ↓H␈ε"rapidly,␈αbased␈αon␈αthe␈αideas␈αof␈α
m␈α↓odular␈αarithmetic␈αas␈αpresen␈α␈ted␈αin␈αSection␈α4.3.2.
␈βαz␈↓ ↓H␈ε"It␈α
is␈αv␈α␈ery␈α
hard␈α
to␈α
believ␈α␈e␈α
at␈α
|rst␈α
that␈α
this␈α
meth␈α↓od␈α
can␈α
be␈αof␈α
adv␈α}an␈α␈tage,␈α∞since␈αa
␈ββ&␈↓ ↓H␈ε"m␈α␈ultiplication␈α	algorithm␈α
based␈α
on␈α	m␈α↓odular␈α
arithmetic␈α
m␈α␈ust␈α	include␈α
the␈α
ch␈α↓oice␈α	of
␈ββQ␈↓ ↓H␈ε"m␈α↓oduli␈α
and␈α
the␈α
con␈α␈v␈α␈ersion␈α∞of␈α
n␈α␈um␈α␈bers␈α
in␈α␈to␈α
and␈α∞out␈α
of␈α
m␈α↓odular␈α
represen␈α␈tation,
␈ββ|␈↓ ↓H␈ε"besides␈α∂the␈α∂actual␈α∂m␈α␈ultiplication␈α∂operation␈α∂itself.␈α→In␈α∞spite␈α∂of␈α∂these␈α∂formidable
␈β∧'␈↓ ↓H␈ε"di}culties,␈α
A.␈↓ β0␈ε"Sch␈↓ βh␈ε"∪␈↓ βh␈ε"o␈↓ βz␈ε"nhage␈α∞disco␈α␈v␈α␈ered␈α
that␈α
all␈α
of␈α∞these␈α
operations␈α
can␈α
be␈α
carried
␈β∧R␈↓ ↓H␈ε"out␈αquite␈αrapidly.
␈β∧}␈↓ α␈ε"In␈αorder␈αto␈αunderstand␈αthe␈αessen␈α␈tial␈αmechanism␈αof␈αSch␈↓ λe␈ε"∪␈↓ λe␈ε"o␈↓ λw␈ε"nhage's␈αmeth␈α↓od,␈αw␈α␈e
␈β¬)␈↓ ↓H␈ε"shall␈αlo␈α↓ok␈αat␈αa␈αspecial␈αcase.␈α⊂Consider␈αthe␈αsequence␈αde|ned␈αby␈αthe␈αrules
␈β¬|␈↓ ∧P␈ε(q␈↓ ∧⎇␈ε"=␈α
1,␈↓ ε∃␈ε(q␈↓ εp␈ε"=␈α
3␈↓ π0␈ε(q␈↓ π\␈ε6␈␈ε"␈αλ1,␈↓ 
p␈ε"(20)
␈βε	␈↓ ∧b␈ε%0␈↓ ε'␈ε+k␈↓ ε7␈ε%+1␈↓ πA␈ε+k
␈βεJ␈↓ β>␈ε+k␈↓ ∧~␈ε+k␈↓ ∧+␈ε9␈␈ε%␈α␈1␈↓ ε{␈ε+k
␈βεK␈↓ εJ␈ε%1
␈βεP␈↓ ↓H␈ε"so␈α∞that␈↓ αG␈ε(q␈↓ αz␈ε"=␈↓ β,␈ε"3␈↓ βZ␈ε6␈␈↓ ∧λ␈ε"3␈↓ ∧c␈ε6␈␈↓ ¬⊃␈ε6↓␈αε↓␈αε↓␈↓ ¬E␈ε6␈␈ε"␈α
1␈α∞=␈↓ ε]␈ε"(␈↓ εi␈ε"3␈↓ π↔␈ε"+␈α
1).␈α_W␈α⎇e␈α∂will␈α∂study␈α∂a␈α∞procedure
␈βε\␈↓ αY␈ε+k
␈βεa␈↓ εJ␈ε%2
␈βεd␈↓ εJ␈∧εdεJα⊂
␈βε{␈↓ ↓H␈ε"that␈α∂m␈α␈ultiplies␈α⊂(18␈↓ βr␈ε(q␈↓ ∧ ␈ε"+␈α
8)-bit␈α⊂n␈α␈um␈α␈bers,␈α⊂in␈α⊂terms␈α∂of␈α⊂a␈α∂meth␈α↓od␈α⊂for␈α∂m␈α␈ultiplying
␈βπλ␈↓ ∧β␈ε+k
␈βπ&␈↓ ↓H␈ε"(18␈↓ ↓x␈ε(q␈↓ αQ␈ε"+␈α	8)-bit␈α∞n␈α␈um␈α␈bers.␈α∀Th␈α␈us,␈α∞if␈α∞w␈α␈e␈α
kn␈α↓o␈α␈w␈α∞h␈α↓o␈α␈w␈α
to␈α
m␈α␈ultiply␈α∞n␈α␈um␈α␈bers␈α
ha␈α␈ving
␈βπ3␈↓ α	␈ε+k␈↓ α~␈ε9␈␈ε%1
␈βπR␈↓ ↓H␈ε"(18␈↓ ↓x␈ε(q␈↓ α≡␈ε"+␈α¬8)␈α
=␈α
26␈α
bits,␈α
the␈α
procedure␈αto␈α
be␈α
described␈α
will␈α
sh␈α↓o␈α␈w␈α
us␈α
h␈α↓o␈α␈w␈α
to␈α
m␈α␈ultiply
␈βπ↑␈↓ α	␈ε%0
␈βπ⎇␈↓ ↓H␈ε"n␈α␈um␈α␈bers␈α∞of␈α∂(18␈↓ β7␈ε(q␈↓ βc␈ε"+␈α
8)␈α∞=␈α∞44␈α∂bits,␈α∂then␈α∞98␈α∂bits,␈α∂then␈α∂260␈α∞bits,␈α∂etc.,␈α∂ev␈α␈en␈α␈tually
␈βλ	␈↓ βH␈ε%1
␈βλ(␈↓ ↓H␈ε"increasing␈αthe␈αn␈α␈um␈α␈ber␈αof␈αbits␈αby␈αalm␈α↓ost␈αa␈αfactor␈αof␈α3␈αat␈αeach␈αstep.
␈βλS␈↓ α␈ε"Let␈↓ αP␈ε(p␈↓ βα␈ε"=␈α
18␈↓ βW␈ε(q␈↓ ∧¬␈ε"+␈α	8.␈α↔When␈α∞m␈α␈ultiplying␈↓ π⊃␈ε(p␈↓ π5␈ε"-bit␈α∞n␈α␈um␈α␈bers,␈α∂the␈α∞idea␈α∞is␈α∞to␈α∞use
␈βλ`␈↓ αb␈ε+k␈↓ βi␈ε+k␈↓ π#␈ε+k
␈βλ}␈↓ ↓H␈ε"the␈αsix␈αm␈α↓oduli
␈β	B␈↓ αB␈ε%6␈↓ αQ␈ε+q␈↓ αp␈ε9␈␈ε%␈α␈1
␈β	C␈↓ ¬1␈ε%6␈↓ ¬@␈ε+q␈↓ ¬↑␈ε%+1
␈β	D␈↓ λ∨␈ε%6␈↓ λ.␈ε+q␈↓ λL␈ε%+2
␈β	H␈↓ ↓H␈ε(m␈↓ αα␈ε"=␈↓ α0␈ε"2␈↓ β&␈ε6␈␈ε"␈αλ1,
␈β	I␈↓ ∧6␈ε(m␈↓ ∧q␈ε"=␈↓ ¬∨␈ε"2␈↓ ε∀␈ε6␈␈ε"␈αλ1,
␈β	J␈↓ π$␈ε(m␈↓ π←␈ε"=␈↓ λ
␈ε"2␈↓ 	β␈ε6␈␈ε"␈αλ1,
␈β	L␈↓ α`␈ε-k
␈β	M␈↓ ¬O␈ε-k␈↓ λ=␈ε-k
␈β	U␈↓ ↓g␈ε%1␈↓ ∧V␈ε%2
␈β	V␈↓ πD␈ε%3
␈β	a␈↓ 
p␈ε"(21)
␈β	x␈↓ αB␈ε%6␈↓ αQ␈ε+q␈↓ αp␈ε%+␈α␈3
␈β	y␈↓ ¬1␈ε%6␈↓ ¬@␈ε+q␈↓ ¬↑␈ε%+5
␈β	z␈↓ λ∨␈ε%6␈↓ λ.␈ε+q␈↓ λL␈ε%+7
␈β	}␈↓ ↓H␈ε(m␈↓ αα␈ε"=␈↓ α0␈ε"2␈↓ β&␈ε6␈␈ε"␈αλ1,
␈β	␈␈↓ ∧6␈ε(m␈↓ ∧q␈ε"=␈↓ ¬∨␈ε"2␈↓ ε∀␈ε6␈␈ε"␈αλ1,
␈β
␈↓ π$␈ε(m␈↓ π←␈ε"=␈↓ λ
␈ε"2␈↓ 	β␈ε6␈␈ε"␈αλ1.
␈β
α␈↓ α`␈ε-k
␈β
β␈↓ ¬O␈ε-k␈↓ λ=␈ε-k
␈β
␈↓ ↓g␈ε%4␈↓ ∧V␈ε%5
␈β
␈↓ πD␈ε%6
␈β
K␈↓ ↓H␈ε"These␈αm␈α↓oduli␈αare␈αrelativ␈α␈ely␈αprime,␈αby␈αEq.␈α4.3.2↑18,␈αsince␈αthe␈αexponen␈α␈ts
␈β∨␈↓ αD␈ε"6␈↓ αV␈ε(q␈↓ βα␈ε6␈␈ε"␈αλ1,␈α*6␈↓ ∧ε␈ε(q␈↓ ∧2␈ε"+␈αλ1,␈α*6␈↓ ¬6␈ε(q␈↓ ¬b␈ε"+␈αλ2,␈α*6␈↓ εf␈ε(q␈↓ π∩␈ε"+␈αλ3,␈α*6␈↓ λ⊗␈ε(q␈↓ λB␈ε"+␈αλ5,␈α*6␈↓ 	F␈ε(q␈↓ 	r␈ε"+␈αλ7␈↓ 
p␈ε"(22)
␈β+␈↓ αh␈ε+k␈↓ ∧_␈ε+k␈↓ ¬H␈ε+k␈↓ εx␈ε+k␈↓ λ(␈ε+k␈↓ 	X␈ε+k
␈βr␈↓ ↓H␈ε"are␈α
alw␈α␈a␈α␈ys␈α
relativ␈α␈ely␈α
prime␈α
(see␈α
exercise␈α
6).␈α∪The␈α
six␈α
m␈α↓oduli␈α
in␈α
(21)␈α
are␈α
capable
␈β↔␈↓ λ}␈ε%36␈↓ 	≤␈ε+q␈↓ 	;␈ε%+␈α␈1␈α↓6␈↓ 
F␈ε%2␈↓ 
U␈ε+p
␈β≥␈↓ ↓H␈ε"of␈α
represen␈α␈ting␈α
n␈α␈um␈α␈bers␈α
up␈α
to␈ε(␈α
m␈ε"␈α=␈↓ ε
␈ε(m␈↓ ε>␈ε(m␈↓ εn␈ε(m␈↓ π∨␈ε(m␈↓ πO␈ε(m␈↓ λ␈ε(m␈↓ λ<␈ε">␈↓ λl␈ε"2␈↓ 
∧␈ε"=␈↓ 
4␈ε"2␈↓ 
u␈ε",␈α
so
␈β!␈↓ 	+␈ε-k␈↓ 
d␈ε-k
␈β*␈↓ ε-␈ε%1␈↓ ε↑␈ε%2␈↓ π∞␈ε%3␈↓ π?␈ε%4␈↓ πo␈ε%5␈↓ λ ␈ε%6
␈βI␈↓ ↓H␈ε"there␈α
is␈α
n␈α↓o␈α
chance␈α
of␈α∞o␈α␈v␈α␈er⎇o␈α␈w␈α
in␈α
the␈α
m␈α␈ultiplication␈α∞of␈↓ λ,␈ε(p␈↓ λP␈ε"-bit␈α
n␈α␈um␈α␈bers␈ε(␈α
u␈ε"␈α
and␈↓ ⊂␈ε(v␈↓ "␈ε".
␈βU␈↓ λ>␈ε+k
␈βt␈↓ ↓H␈ε"Th␈α␈us␈αw␈α␈e␈αma␈α␈y␈αuse␈αthe␈αfollo␈α␈wing␈αmeth␈α↓od,␈αwhen␈↓ π&␈ε(k␈↓ πD␈ε">␈α
0:
␈β
3␈↓ ↓b␈ε"a)␈↓ α␈ε"Compute␈↓ β*␈ε(u␈↓ β↑␈ε"=␈ε(␈α∞u␈↓ ∧+␈ε"mod␈↓ ∧u␈ε(m␈↓ ¬%␈ε",␈↓ ¬>␈ε".␈αε.␈αε.␈↓ ¬n␈ε",␈↓ επ␈ε(u␈↓ ε;␈ε"=␈ε(␈α∞u␈↓ ππ␈ε"mod␈↓ πQ␈ε(m␈↓ λα␈ε";␈α∂and␈↓ λd␈ε(v␈↓ 	∀␈ε"=␈↓ 	F␈ε(v␈↓ 	←␈ε"mod␈↓ 
)␈ε(m␈↓ 
Y␈ε",␈↓ 
r␈ε".␈αε.␈αε.␈↓ "␈ε",
␈β
@␈↓ β?␈ε%1␈↓ ¬∀␈ε%1␈↓ ε≤␈ε%6␈↓ πq␈ε%6␈↓ λu␈ε%1␈↓ 
I␈ε%1
␈β
←␈↓ α␈ε(v␈↓ α8␈ε"=␈↓ αf␈ε(v␈↓ α␈␈ε"mod␈↓ βI␈ε(m␈↓ βz␈ε".
␈β
k␈↓ α≡␈ε%6␈↓ βi␈ε%6
␈β∞∀␈↓ ↓`␈ε"b)␈↓ α␈ε"Multiply␈↓ β ␈ε(u␈↓ βS␈ε"by␈↓ ∧π␈ε(v␈↓ ∧)␈ε",␈↓ ∧A␈ε(u␈↓ ∧t␈ε"by␈↓ ¬(␈ε(v␈↓ ¬J␈ε",␈↓ ¬a␈ε".␈αε.␈αε.␈↓ ε⊃␈ε",␈↓ ε)␈ε(u␈↓ ε\␈ε"by␈↓ π⊂␈ε(v␈↓ π2␈ε".␈α∀These␈α
are␈α
n␈α␈um␈α␈bers␈α
of␈α
at␈α
m␈α↓ost
␈β∞ ␈↓ β5␈ε%1␈↓ ∧→␈ε%1␈↓ ∧V␈ε%2␈↓ ¬9␈ε%2␈↓ ε>␈ε%6␈↓ π!␈ε%6
␈β∞?␈↓ α␈ε"6␈↓ α≡␈ε(q␈↓ αE␈ε"+␈αβ7␈α
=␈α
18␈↓ βZ␈ε(q␈↓ ∧.␈ε"+␈αβ1␈α
<␈↓ ¬∨␈ε(p␈↓ ¬z␈ε"bits,␈α
so␈α	the␈α
m␈α␈ultiplications␈α	can␈α
be␈α	performed
␈β∞L␈↓ α0␈ε+k␈↓ βl␈ε+k␈↓ β⎇␈ε9␈␈ε%␈α␈1␈↓ ¬1␈ε+k␈↓ ¬B␈ε9␈␈ε%␈α␈1
␈β∞j␈↓ α␈ε"by␈αusing␈αthe␈αassumed␈↓ ∧k␈ε(p␈↓ ¬<␈ε"-bit␈αm␈α␈ultiplication␈αprocedure.
␈β∞w␈↓ ∧⎇␈ε+k␈↓ ¬∞␈ε9␈␈ε%␈α␈1
␈β∂ ␈↓ ↓d␈ε"c)␈↓ α␈ε"Compute␈↓ β(␈ε(w␈↓ β\␈ε"=␈↓ ∧
␈ε(u␈↓ ∧0␈ε(v␈↓ ∧X␈ε"mod␈↓ ¬"␈ε(m␈↓ ¬S␈ε",␈↓ ¬i␈ε(w␈↓ ε≥␈ε"=␈↓ εK␈ε(u␈↓ εq␈ε(v␈↓ π→␈ε"mod␈↓ πc␈ε(m␈↓ λ∪␈ε",␈↓ λ)␈ε".␈αε.␈αε.␈↓ λY␈ε",␈↓ λo␈ε(w␈↓ 	$␈ε"=␈↓ 	R␈ε(u␈↓ 	w␈ε(v␈↓ 
 ␈ε"mod␈↓ 
j␈ε(m␈↓ ~␈ε".
␈β∂,␈↓ βB␈ε%1␈↓ ∧∨␈ε%1␈↓ ∧A␈ε%1␈↓ ¬B␈ε%1␈↓ εα␈ε%2␈↓ ε`␈ε%2␈↓ πα␈ε%2␈↓ λβ␈ε%2␈↓ 		␈ε%6␈↓ 	f␈ε%6␈↓ 
	␈ε%6␈↓ 	␈ε%6
␈β∂U␈↓ ↓`␈ε"d)␈↓ α␈ε"Compute␈↓ β(␈ε(w␈↓ βO␈ε"such␈αthat␈α0␈ε6␈α
∀␈↓ ¬9␈ε(w␈↓ ¬↑␈ε"<␈ε(␈α
m␈ε",␈↓ εB␈ε(w␈↓ εb␈ε"mod␈↓ π,␈ε(m␈↓ πg␈ε"=␈↓ λ∃␈ε(w␈↓ λ?␈ε",␈↓ λU␈ε".␈αε.␈αε.␈↓ 	¬␈ε",␈↓ 	≠␈ε(w␈↓ 	<␈ε"mod␈↓ 
ε␈ε(m␈↓ 
A␈ε"=␈↓ 
o␈ε(w␈↓ →␈ε".
␈β∂a␈↓ πL␈ε%1␈↓ λ.␈ε%1␈↓ 
&␈ε%6␈↓ λ␈ε%6
␈β⊂∃␈↓ α␈ε"Let␈↓ αO␈ε(t␈↓ α{␈ε"be␈αthe␈α
am␈α↓oun␈α␈t␈α
of␈αtime␈α
needed␈α
for␈αthis␈α
process.␈α∩It␈α
is␈αn␈α↓ot␈α
hard␈α
to␈αsee
␈β⊂!␈↓ α\␈ε+k
␈β⊂:␈↓ 
K␈ε+e
␈β⊂@␈↓ ↓H␈ε"that␈αoperation␈α(a)␈α
tak␈α␈es␈↓ ∧J␈ε(O␈↓ ∧f␈ε"(␈↓ ∧r␈ε(p␈↓ ¬↔␈ε")␈αcy␈α␈cles,␈αsince␈α
the␈αdetermination␈αof␈ε(␈αu␈↓ 	c␈ε"mod␈↓ 
-␈ε"(␈↓ 
9␈ε"2␈↓ 
b␈ε6␈␈ε"␈αλ1)
␈β⊂L␈↓ ¬∧␈ε+k
␈β⊂k␈↓ ↓H␈ε"is␈α∞quite␈α
simple␈α∞(lik␈α␈e␈α∞\casting␈α∞out␈α∞nines"),␈α∞as␈α∞sh␈α↓o␈α␈wn␈α∞in␈α∞Section␈α∞4.3.2.␈α∃Similarly,
␈β⊃⊗␈↓ ↓H␈ε"operation␈α(c)␈αtak␈α␈es␈↓ βv␈ε(O␈↓ ∧∪␈ε"(␈↓ ∧∨␈ε(p␈↓ ∧C␈ε")␈αcy␈α␈cles.␈α⊂Operation␈α(b)␈αrequires␈αessen␈α␈tially␈α6␈↓ 	q␈ε(t␈↓ 
H␈ε"cy␈α␈cles.
␈β⊃#␈↓ ∧1␈ε+k␈↓ 	}␈ε+k␈↓ 
∂␈ε9␈␈ε%␈α␈1
␈β∪(

␈β↓U␈↓ ↓H␈ε"288␈↓ 
b␈ε"4.3.3
␈β↓\␈↓ α=␈ε∞ARITH␈α↓MET␈α↓IC
␈βα"␈↓ ↓H␈ε"This␈αλlea␈α␈v␈α␈es␈α	us␈αλwith␈α	operation␈αλ(d),␈α
which␈αλseems␈α	to␈αλbe␈α	quite␈αλa␈α	di}cult␈αλcomputation;
␈βαM␈↓ ↓H␈ε"but␈α∞Sch␈↓ αD␈ε"∪␈↓ αD␈ε"o␈↓ αV␈ε"nhage␈α∞has␈α∞found␈α∞an␈α∞ingenious␈α∞w␈α␈a␈α␈y␈α∞to␈α∞perform␈α∞step␈α∞(d)␈α∂in␈↓ 	v␈ε(O␈↓ 
∩␈ε"(␈↓ 
≡␈ε(p␈↓ 
H␈ε"log␈↓ 
|␈ε(p␈↓  ␈ε")
␈βαZ␈↓ 
0␈ε+k␈↓ ∞␈ε+k
␈βαy␈↓ ↓H␈ε"cy␈α␈cles,␈αand␈αthis␈αis␈αthe␈αcrux␈αof␈αthe␈αmeth␈α↓od.␈α⊂As␈αa␈αconsequence,␈αw␈α␈e␈αha␈α␈v␈α␈e
␈ββO␈↓ ∧e␈ε(t␈↓ ¬∞␈ε"=␈α
6␈↓ ¬N␈ε(t␈↓ ε"␈ε"+␈↓ εN␈ε(O␈↓ εk␈ε"(␈↓ εw␈ε(p␈↓ π!␈ε"log␈↓ πU␈ε(p␈↓ πy␈ε").
␈ββ\␈↓ ∧r␈ε+k␈↓ ¬[␈ε+k␈↓ ¬l␈ε9␈␈ε%1␈↓ π	␈ε+k␈↓ πg␈ε+k
␈β∧ ␈↓ β∀␈ε+k␈↓ β$␈ε%+2
␈β∧&␈↓ ↓H␈ε"Since␈↓ α&␈ε(p␈↓ αT␈ε"=␈↓ βα␈ε"3␈↓ β[␈ε"+␈αλ17,␈αw␈α␈e␈αcan␈αsh␈α↓o␈α␈w␈αthat␈αthe␈αtime␈αfor␈ε(␈αn␈ε"-bit␈αm␈α␈ultiplication␈αis
␈β∧2␈↓ α8␈ε+k
␈β∧u␈↓ ε␈ε%log␈↓ εF␈ε%6␈↓ πf␈ε%1.63
␈β∧⎇␈↓ ∧@␈ε(T␈↓ ∧Z␈ε"(␈ε(n␈ε")␈α
=␈↓ ¬@␈ε(O␈↓ ¬\␈ε"(␈↓ ¬h␈ε(N␈↓ εV␈ε")␈α
=␈↓ π~␈ε(O␈↓ π7␈ε"(␈↓ πC␈ε(N␈↓ λ≡␈ε").␈↓ 
p␈ε"(23)
␈β¬α␈↓ ε2␈ε'3
␈β¬S␈↓ ↓H␈ε"(See␈αexercise␈α7.)
␈β¬y␈↓ 
%␈ε%lg␈↓ 
B␈ε%3
␈β¬␈␈↓ α␈ε"Alth␈α↓ough␈α∞the␈α∞m␈α↓odular␈α∞meth␈α↓od␈α∞is␈α∞m␈α↓ore␈α∞complicated␈α∞than␈α∞the␈↓ 	g␈ε(O␈↓ 
β␈ε"(␈↓ 
∂␈ε(n␈↓ 
R␈ε")␈α∞pro-
␈βε*␈↓ ↓H␈ε"cedure␈α∂discussed␈α∞at␈α∂the␈α∂beginning␈α∂of␈α∂this␈α∂section,␈α⊂Eq.␈α∂(23)␈α∂sh␈α↓o␈α␈ws␈α∂that␈α∂it␈α∞does,
␈βεO␈↓ 	B␈ε%2
␈βεU␈↓ ↓H␈ε"in␈α
fact,␈α∞lead␈α∞to␈α
an␈α∞execution␈α
time␈α∞substan␈α␈tially␈α∞better␈α
than␈↓ 	∧␈ε(O␈↓ 	 ␈ε"(␈↓ 	,␈ε(n␈↓ 	S␈ε")␈α
for␈α∞the␈α
m␈α␈ul-
␈βπ␈↓ ↓H␈ε"tiplication␈α
of␈ε(␈α∞n␈ε"-bit␈α∞n␈α␈um␈α␈bers.␈α∃Th␈α␈us␈α
w␈α␈e␈α∞can␈α∞impro␈α␈v␈α␈e␈α∞on␈α
the␈α∞classical␈α∞meth␈α↓od␈α
by
␈βπ,␈↓ ↓H␈ε"using␈αeither␈αof␈αt␈α␈w␈α␈o␈αcompletely␈αdi{eren␈α␈t␈αapproaches.
␈βπW␈↓ α␈ε"Let␈αus␈αn␈α↓o␈α␈w␈α
analyze␈αoperation␈α(d)␈αabo␈α␈v␈α␈e.␈α⊃Assume␈αthat␈αw␈α␈e␈α
are␈αgiv␈α␈en␈αa␈αset␈αof
␈βλα␈↓ ↓H␈ε"positiv␈α␈e␈αin␈α␈tegers␈↓ βQ␈ε(e␈↓ β{␈ε"<␈↓ ∧)␈ε(e␈↓ ∧S␈ε"<␈↓ ¬↓␈ε6↓␈αε↓␈αε↓␈↓ ¬5␈ε"<␈↓ ¬c␈ε(e␈↓ ε↓␈ε",␈αrelativ␈α␈ely␈αprime␈αin␈αpairs;␈αlet
␈βλ∞␈↓ β`␈ε%1␈↓ ∧8␈ε%2␈↓ ¬r␈ε+r
␈βλQ␈↓ βH␈ε+e␈↓ ¬}␈ε+e␈↓ 	:␈ε+e
␈βλY␈↓ αM␈ε(m␈↓ βλ␈ε"=␈↓ β6␈ε"2␈↓ βm␈ε6␈␈ε"␈αλ1,␈↓ ¬β␈ε(m␈↓ ¬>␈ε"=␈↓ ¬l␈ε"2␈↓ ε#␈ε6␈␈ε"␈αλ1,␈↓ π9␈ε".␈αε.␈αε.␈↓ πi␈ε",␈↓ λA␈ε(m␈↓ λz␈ε"=␈↓ 	(␈ε"2␈↓ 	←␈ε6␈␈ε"␈αλ1.␈↓ 
p␈ε"(24)
␈βλ[␈↓ βU␈ε'1␈↓ ε␈ε'2␈↓ 	G␈ε-r
␈βλe␈↓ αm␈ε%1␈↓ ¬#␈ε%2␈↓ λa␈ε+r
␈β	/␈↓ ↓H␈ε"W␈α⎇e␈α
are␈α
also␈α
giv␈α␈en␈α
n␈α␈um␈α␈bers␈↓ ∧|␈ε(w␈↓ ¬'␈ε",␈↓ ¬>␈ε".␈αε.␈αε.␈↓ ¬n␈ε",␈↓ εε␈ε(w␈↓ ε<␈ε"such␈α
that␈α
0␈ε6␈α∀␈↓ λ,␈ε(w␈↓ λa␈ε6∀␈↓ 	⊃␈ε(m␈↓ 	?␈ε".␈α∀Our␈α
job␈α
is␈ε/␈α
to
␈β	<␈↓ ¬⊗␈ε%1␈↓ ε∨␈ε+r␈↓ λE␈ε+j␈↓ 	0␈ε+j
␈β	[␈↓ ↓H␈ε/determine␈α	the␈α	binary␈α	represen␈α␈tation␈α
of␈α	the␈α	n␈α␈um␈α␈ber␈↓ πa␈ε(w␈↓ λ¬␈ε/that␈α	satis|es␈α	the␈α	conditions
␈β
*␈↓ ¬β␈ε"0␈ε6␈α
∀␈↓ ¬M␈ε(w␈↓ ¬r␈ε"<␈↓ ε ␈ε(m␈↓ εQ␈ε(m␈↓ ππ␈ε".␈αε.␈αε.␈↓ π7␈ε(m␈↓ πg␈ε",
␈β
6␈↓ ε@␈ε%1␈↓ εq␈ε%2␈↓ πW␈ε+r
␈β
H␈↓ 
p␈ε"(25)
␈β
c␈↓ αw␈ε(w␈↓ β≤␈ε6⊃␈↓ βJ␈ε(w␈↓ β}␈ε"(modulo␈↓ ¬
␈ε(m␈↓ ¬:␈ε"),␈↓ ε≡␈ε".␈αε.␈αε.␈↓ εN␈ε",␈↓ π&␈ε(w␈↓ πK␈ε6⊃␈↓ πy␈ε(w␈↓ λ,␈ε"(modulo␈↓ 	8␈ε(m␈↓ 	g␈ε").
␈β
p␈↓ βc␈ε%1␈↓ ¬*␈ε%1␈↓ λ∪␈ε+r␈↓ 	X␈ε+r
␈β7␈↓ ↓H␈ε"The␈αmeth␈α↓od␈αis␈αbased␈αon␈α(23)␈αand␈α(24)␈αof␈αSection␈↓ πM␈ε"4.3.2.␈α⊂First␈αw␈α␈e␈αcompute
␈βo␈↓ α*␈ε↓␈␈↓ πV␈ε↓↓
␈β¬␈↓ ↓c␈ε90␈↓ β⎇␈ε90␈↓ ¬≥␈ε90␈↓ π~␈ε90
␈β
␈↓ ↓H␈ε(w␈↓ ↓|␈ε"=␈↓ α>␈ε".␈αε.␈αε.␈↓ αn␈ε"((␈↓ βε␈ε(w␈↓ β6␈ε6␈␈↓ βb␈ε(w␈↓ ∧∞␈ε")␈↓ ∧ ␈ε(c␈↓ ∧V␈ε6␈␈↓ ¬α␈ε(w␈↓ ¬-␈ε")␈↓ ¬?␈ε(c␈↓ ¬u␈ε6␈␈↓ ε!␈ε6↓␈αε↓␈αε↓␈↓ εS␈ε6␈␈↓ ε␈␈ε(w␈↓ πj␈ε(c␈↓ λ↑␈ε"mod␈↓ 	(␈ε(m␈↓ 	W␈ε",␈↓ 
p␈ε"(26)
␈β~␈↓ β∨␈ε+j␈↓ ∧/␈ε%1␈↓ ∧?␈ε+j␈↓ ¬O␈ε%2␈↓ ¬↑␈ε+j␈↓ πy␈ε%(␈↓ λ∧␈ε+j␈↓ λ⊃␈ε9␈␈ε%1)␈↓ λH␈ε+j␈↓ 	G␈ε+j
␈β≡␈↓ ↓c␈ε+j␈↓ β⎇␈ε%1␈↓ ¬≥␈ε%2␈↓ π~␈ε+j␈↓ π(␈ε9␈␈ε%␈α␈1
␈β↑␈↓ ∧`␈ε90
␈βd␈↓ ↓H␈ε"for␈↓ α␈ε(j␈↓ α≠␈ε"=␈α
2,␈↓ αq␈ε".␈αε.␈αε.␈↓ β!␈ε",␈↓ β7␈ε(r␈↓ βG␈ε",␈αwhere␈↓ ∧E␈ε(w␈↓ ∧{␈ε"=␈↓ ¬)␈ε(w␈↓ ¬Y␈ε"mod␈↓ ε#␈ε(m␈↓ εT␈ε";␈αthen␈αw␈α␈e␈αcompute
␈βp␈↓ ¬B␈ε%1␈↓ εC␈ε%1
␈βu␈↓ ∧`␈ε%1
␈β
≤␈↓ βF␈ε↓␈␈↓ λS␈ε↓↓
␈β
3␈↓ ∧1␈ε90␈↓ ¬k␈ε90␈↓ λB␈ε90␈↓ 	f␈ε90
␈β
;␈↓ αs␈ε(w␈↓ β_␈ε"=␈↓ βZ␈ε".␈αε.␈αε.␈↓ ∧
␈ε"(␈↓ ∧⊗␈ε(w␈↓ ∧@␈ε(m␈↓ ¬$␈ε"+␈↓ ¬P␈ε(w␈↓ ε'␈ε")␈↓ ε9␈ε(m␈↓ π≥␈ε"+␈↓ πI␈ε6↓␈αε↓␈αε↓␈↓ π{␈ε"+␈↓ λ'␈ε(w␈↓ λg␈ε(m␈↓ 	∨␈ε"+␈↓ 	K␈ε(w␈↓ 	w␈ε".␈↓ 
p␈ε"(27)
␈β
G␈↓ ∧`␈ε+r␈↓ ∧n␈ε9␈␈ε%␈α␈1␈↓ εY␈ε+r␈↓ εg␈ε9␈␈ε%␈α␈2␈↓ 	π␈ε%1
␈β
K␈↓ ∧1␈ε+r␈↓ ¬k␈ε+r␈↓ ¬y␈ε9␈␈ε%␈α␈1␈↓ λB␈ε%2␈↓ 	f␈ε%1
␈β∞⊃␈↓ ↓H␈ε"Here␈↓ α≡␈ε(c␈↓ αU␈ε"is␈α∞a␈α∞n␈α␈um␈α␈ber␈α∞such␈α∞that␈↓ ¬C␈ε(c␈↓ ¬l␈ε(m␈↓ ε%␈ε6⊃␈ε"␈α
1␈α∞(modulo␈↓ λα␈ε(m␈↓ λ0␈ε");␈α∂these␈α∞n␈α␈um␈α␈bers␈↓ 
E␈ε(c␈↓ 
|␈ε"are
␈β∞≡␈↓ α-␈ε+i␈↓ α7␈ε+j␈↓ ¬R␈ε+i␈↓ ¬\␈ε+j␈↓ ε␈ε+i␈↓ λ!␈ε+j␈↓ 
U␈ε+i␈↓ 
←␈ε+j
␈β∞=␈↓ ↓H␈ε"n␈α↓ot␈αgiv␈α␈en,␈αthey␈αm␈α␈ust␈αbe␈αdetermined␈αfrom␈αthe␈↓ π≠␈ε(e␈↓ π9␈ε"'s.
␈β∞I␈↓ π*␈ε+j␈↓ π7␈ε↓␈␈↓ πT␈ε↓↓
␈β∞↑␈↓ πE␈ε+r
␈β∞h␈↓ α␈ε"The␈α⊃calculation␈α∩of␈α⊃(26)␈α⊃for␈α∩all␈↓ ελ␈ε(j␈↓ ε*␈ε"in␈α␈v␈α␈olv␈α␈es␈↓ πs␈ε"additions␈α∩m␈α↓odulo␈↓ 
≠␈ε(m␈↓ 
J␈ε",␈α∩each
␈β∞t␈↓ ¬h␈ε↓␈␈↓ εε␈ε↓↓␈↓ 
;␈ε+j
␈β∞y␈↓ πE␈ε%2
␈β∂
␈↓ ¬w␈ε+r
␈β∂∪␈↓ ↓H␈ε"of␈α∂which␈α⊂tak␈α␈es␈↓ βA␈ε(O␈↓ β↑␈ε"(␈↓ βj␈ε(e␈↓ ∧	␈ε")␈α∂cy␈α␈cles,␈α⊃plus␈↓ ε#␈ε"m␈α␈ultiplications␈α⊂by␈↓ λR␈ε(c␈↓ λ|␈ε",␈α⊂m␈α↓odulo␈↓ 
≠␈ε(m␈↓ 
J␈ε".␈α~The
␈β∂∨␈↓ βy␈ε+r␈↓ λb␈ε+i␈↓ λl␈ε+j␈↓ 
:␈ε+j
␈β∂$␈↓ ¬v␈ε%2
␈β∂>␈↓ ↓H␈ε"calculation␈α	of␈↓ β"␈ε(w␈↓ βF␈ε"by␈α	form␈α␈ula␈α	(27)␈α	in␈α␈v␈α␈olv␈α␈es␈↓ εB␈ε(r␈↓ ε[␈ε"additions␈α	and␈↓ λ8␈ε(r␈↓ λQ␈ε"m␈α␈ultiplications␈α	by␈↓ 
s␈ε(m␈↓ "␈ε";
␈β∂K␈↓ ∪␈ε+j
␈β∂i␈↓ ↓H␈ε"it␈αis␈αeasy␈αto␈αm␈α␈ultiply␈αby␈↓ ∧N␈ε(m␈↓ ∧⎇␈ε",␈α
since␈αthis␈αis␈αjust␈αadding,␈αshi$ing,␈αand␈αsubtracting,
␈β∂v␈↓ ∧n␈ε+j
␈β⊂∂␈↓ λ!␈ε%2
␈β⊂∃␈↓ ↓H␈ε"so␈α
it␈α
is␈α∞clear␈α
that␈α
the␈α∞ev␈α}aluation␈α
of␈α
Eq.␈α
(27)␈α∞tak␈α␈es␈↓ πh␈ε(O␈↓ λ¬␈ε"(␈↓ λ⊃␈ε(r␈↓ λ2␈ε(e␈↓ λQ␈ε")␈α
cy␈α␈cles.␈α∀W␈α⎇e␈α
will␈α
so␈α↓on
␈β⊂!␈↓ λA␈ε+r
␈β⊂@␈↓ ↓H␈ε"see␈αthat␈αeach␈αof␈αthe␈αm␈α␈ultiplications␈αby␈↓ ε+␈ε(c␈↓ εT␈ε",␈αm␈α↓odulo␈↓ πi␈ε(m␈↓ λ_␈ε",␈αrequires␈αonly␈↓ 
↓␈ε(O␈↓ 
≥␈ε"(␈↓ 
)␈ε(e␈↓ 
N␈ε"log␈↓ α␈ε(e␈↓  ␈ε")
␈β⊂L␈↓ ε:␈ε+i␈↓ εE␈ε+j␈↓ λ	␈ε+j␈↓ 
8␈ε+r␈↓ ⊃␈ε+r
␈β⊂k␈↓ ↓H␈ε"cy␈α␈cles,␈α⊂and␈α∂therefore␈ε/␈α⊂it␈α∂is␈α∂possible␈α⊂to␈α∂complete␈α⊂the␈α∂en␈α␈tire␈α∂job␈α⊂of␈α∂con␈α␈v␈α␈ersion␈α∂in
␈β⊃⊂␈↓ α↓␈ε%2
␈β⊃⊗␈↓ ↓H␈ε(O␈↓ ↓d␈ε"(␈↓ ↓p␈ε(r␈↓ α⊃␈ε(e␈↓ α6␈ε"log␈↓ αj␈ε(e␈↓ β	␈ε")␈ε/␈αcy␈α␈cles␈ε".
␈β⊃#␈↓ α!␈ε+r␈↓ αy␈ε+r
␈β∪(

␈β↓U␈↓ ↓H␈ε"4.3.3␈↓ 
)␈ε"?␈↓ 
v␈ε"289
␈β↓\␈↓ εF␈ε∞H␈α↓O␈α␈W␈α
F␈α|AST␈α
CA␈α↓N␈α	W␈α↓E␈α
MUL␈α}TI␈α↓P␈α␈L␈α}Y
␈βα$␈↓ α␈ε"The␈αabo␈α␈v␈α␈e␈αobserv␈α}ations␈αlea␈α␈v␈α␈e␈αus␈αwith␈αthe␈αfollo␈α␈wing␈αproblem␈αto␈αsolv␈α␈e:␈αGiv␈α␈en
␈βαI␈↓ λ:␈ε+f
␈βαO␈↓ ↓H␈ε"positiv␈α␈e␈αin␈α␈tegers␈ε(␈αe␈ε"␈α
<␈↓ ∧↔␈ε(f␈↓ ∧8␈ε"and␈αa␈αn␈α↓onnegativ␈α␈e␈αin␈α␈teger␈ε(␈αu␈ε"␈α
<␈↓ λ(␈ε"2␈↓ λM␈ε",␈αcompute␈αthe␈αv␈α}alue␈αof
␈βαt␈↓ αr␈ε+f␈↓ πq␈ε+e␈↓ 
I␈ε+f
␈βαz␈↓ ↓H␈ε"(␈ε(cu␈ε")␈↓ α
␈ε"mod␈↓ αT␈ε"(␈↓ α`␈ε"2␈↓ βπ␈ε6␈␈ε"␈αα1),␈α
where␈ε(␈α
c␈ε"␈α	is␈α	the␈α
n␈α␈um␈α␈ber␈α	such␈α	that␈α	(␈↓ π←␈ε"2␈↓ λβ␈ε6␈␈ε"␈αα1)␈ε(c␈ε6␈α⊃␈ε"␈α
1␈α
(modulo␈↓ 
7␈ε"2␈↓ 
↑␈ε6␈␈ε"␈αα1);
␈ββ&␈↓ ↓H␈ε"and␈α∞the␈α
computation␈α∞m␈α␈ust␈α∞be␈α∞done␈α∞in␈↓ ε4␈ε(O␈↓ εP␈ε"(␈↓ ε\␈ε(f␈↓ εx␈ε"log␈↓ π,␈ε(f␈↓ πA␈ε")␈α∞cy␈α␈cles.␈α⊗The␈α∞result␈α∞of␈α
exercise
␈ββQ␈↓ ↓H␈ε"4.3.2↑6␈α∞giv␈α␈es␈α∞a␈α∞form␈α␈ula␈α∂for␈ε(␈α∞c␈ε"␈α∞that␈α∂suggests␈α∞a␈α∞suitable␈α∞procedure.␈α↔First␈α∞w␈α␈e␈α∞|nd
␈ββ|␈↓ ↓H␈ε"the␈αleast␈αpositiv␈α␈e␈αin␈α␈teger␈ε(␈αb␈ε"␈αsuch␈αthat
␈β∧O␈↓ ¬%␈ε(be␈ε6␈α⊃␈ε"␈α
1␈α
(modulo␈↓ π$␈ε(f␈↓ π9␈ε").␈↓ 
p␈ε"(28)
␈β¬∧␈↓ πF␈ε↓␈␈↓ λF␈ε↓↓
␈β¬≥␈↓ λ6␈ε%3
␈β¬#␈↓ ↓H␈ε"This␈α∞can␈α∂be␈α∞done␈α∂using␈↓ ∧L␈ε"Euclid's␈α∂algorithm␈α∞in␈↓ π*␈ε(O␈↓ πT␈ε"(␈↓ π`␈ε"log␈↓ λ∀␈ε(f␈↓ λ*␈ε")␈↓ λc␈ε"cy␈α␈cles,␈α∂since␈α∞Euclid's
␈β¬N␈↓ ↓H␈ε"algorithm␈α⊃applied␈α⊃to␈ε(␈α∩e␈ε"␈α⊃and␈↓ ¬∩␈ε(f␈↓ ¬8␈ε"requires␈↓ εD␈ε(O␈↓ ε`␈ε"(␈↓ εl␈ε"log␈↓ π ␈ε(f␈↓ π6␈ε")␈α⊃iterations,␈α∪and␈α⊃each␈α⊃iteration
␈β¬[␈↓ αl␈ε↓␈␈↓ βl␈ε↓↓
␈β¬s␈↓ β[␈ε%2
␈β¬y␈↓ ↓H␈ε"requires␈↓ αO␈ε(O␈↓ αz␈ε"(␈↓ βε␈ε"log␈↓ β:␈ε(f␈↓ βO␈ε")␈↓ ∧π␈ε"cy␈α␈cles;␈α∞alternativ␈α␈ely,␈α∞w␈α␈e␈α
could␈α∞be␈α
v␈α␈ery␈α∞sloppy␈α
here␈α
with␈α↓out
␈βε$␈↓ ↓H␈ε"violating␈α∂the␈α∞total␈α∂time␈α∂constrain␈α␈t,␈α⊂by␈α∂simply␈α∂trying␈ε(␈α∂b␈ε"␈α∂=␈α∂1,␈α∂2,␈α⊂etc.,␈α⊂un␈α␈til␈α∞(28)
␈βεP␈↓ ↓H␈ε"is␈α
satis|ed,␈α
since␈α
such␈α
a␈α
process␈α
w␈α␈ould␈α
tak␈α␈e␈↓ π∧␈ε(O␈↓ π ␈ε"(␈↓ π,␈ε(f␈↓ πH␈ε"log␈↓ π|␈ε(f␈↓ λ⊃␈ε")␈α
cy␈α␈cles␈α
in␈α
all.␈α∪Once␈ε(␈α
b␈ε"␈α
has
␈βε{␈↓ ↓H␈ε"been␈αfound,␈αexercise␈α4.3.2↑6␈αtells␈αus␈αthat
␈βπ@␈↓ ¬q␈ε↓X
␈βπI␈↓ ¬A␈ε↓∩␈↓ εr␈ε↓∪
␈βπZ␈↓ εV␈ε+j␈↓ εc␈ε+e␈↓ πv␈ε+f
␈βπb␈↓ ∧∂␈ε(c␈ε"␈α
=␈ε(␈α
c␈↓ ∧f␈ε"[␈↓ ∧p␈ε(b␈ε"]␈α
=␈↓ εD␈ε"2␈↓ π∞␈ε"mod␈↓ πX␈ε"(␈↓ πd␈ε"2␈↓ λ⊃␈ε6␈␈ε"␈αλ1).␈↓ 
p␈ε"(29)
␈βλ∩␈↓ ¬W␈ε%0␈ε9␈α↓∀␈↓ ε∧␈ε+j␈↓ ε∩␈ε%<␈ε+␈α␈b
␈βλX␈↓ π∃␈ε+f
␈βλ↑␈↓ α␈ε"A␈αλbrute-force␈αλm␈α␈ultiplication␈αλof␈αλ(␈ε(cu␈ε")␈↓ ε-␈ε"mod␈↓ εw␈ε"(␈↓ πβ␈ε"2␈↓ π(␈ε6␈␈ε"1)␈αλw␈α␈ould␈αλn␈α↓ot␈αλbe␈αλgo␈α↓od␈αλen␈α↓ough␈αλto
␈β		␈↓ ↓H␈ε"solv␈α␈e␈αthe␈αproblem,␈αsince␈αw␈α␈e␈αdo␈αn␈α↓ot␈αkn␈α↓o␈α␈w␈αh␈α↓o␈α␈w␈αto␈αm␈α␈ultiply␈αgeneral␈↓ 	P␈ε(f␈↓ 	e␈ε"-bit␈αn␈α␈um␈α␈bers
␈β	4␈↓ ↓H␈ε"in␈↓ ↓x␈ε(O␈↓ α∀␈ε"(␈↓ α ␈ε(f␈↓ α;␈ε"log␈↓ αo␈ε(f␈↓ β¬␈ε")␈α∩cy␈α␈cles.␈α"But␈α∩the␈α∩special␈α∩form␈α⊃of␈ε(␈α∩c␈ε"␈α∪pro␈α␈vides␈α∩a␈α∩clue:␈α↔The␈α∩binary
␈β	`␈↓ ↓H␈ε"represen␈α␈tation␈αof␈ε(␈α
c␈ε"␈αis␈α
composed␈αof␈α
bits␈αin␈α
a␈αregular␈αpattern,␈α
and␈α
Eq.␈α(29)␈αsh␈α↓o␈α␈ws
␈β
␈↓ ↓H␈ε"that␈αthe␈α
n␈α␈um␈α␈ber␈ε(␈α
c␈↓ βg␈ε"[␈↓ βq␈ε"2␈ε(b␈ε"]␈α
can␈α
be␈αobtained␈α
in␈α
a␈αsimple␈α
w␈α␈a␈α␈y␈αfrom␈ε(␈α
c␈↓ 	~␈ε"[␈↓ 	%␈ε(b␈ε"].␈α∩This␈αsuggests
␈β
6␈↓ ↓H␈ε"that␈αw␈α␈e␈αcan␈αrapidly␈αm␈α␈ultiply␈αa␈αn␈α␈um␈α␈ber␈ε(␈αu␈ε"␈αby␈ε(␈αc␈↓ π∪␈ε"[␈↓ π≡␈ε(b␈ε"]␈αif␈αw␈α␈e␈αbuild␈ε(␈αc␈↓ 	α␈ε"[␈↓ 	␈ε(b␈ε"␈α↓]␈ε(u␈ε"␈αup␈αin␈↓ 
"␈ε"lg␈↓ 
D␈ε(b␈ε"␈αsteps
␈β
a␈↓ ↓H␈ε"in␈αa␈αsuitably␈αclev␈α␈er␈αmanner,␈αsuch␈αas␈αthe␈αfollo␈α␈wing:␈αLet␈αthe␈αbinary␈αn␈α↓otation␈αfor␈ε(␈αb
␈β␈↓ ↓H␈ε"be
␈β8␈↓ ¬#␈ε(b␈ε"␈α
=␈α
(␈↓ ¬v␈ε(b␈↓ ε≠␈ε".␈αε.␈αε.␈↓ εK␈ε(b␈↓ εk␈ε(b␈↓ π␈ε(b␈↓ π+␈ε")␈↓ πH␈ε";
␈βD␈↓ ε¬␈ε+s␈↓ εZ␈ε%2␈↓ εz␈ε%1␈↓ π~␈ε%0␈↓ π7␈ε%2
␈β{␈↓ ↓H␈ε"w␈α␈e␈αma␈α␈y␈αcalculate␈αthe␈αsequences␈↓ ¬A␈ε(a␈↓ ¬f␈ε",␈↓ ¬|␈ε(d␈↓ ε ␈ε",␈↓ ε6␈ε(u␈↓ ε]␈ε",␈↓ εs␈ε(v␈↓ π#␈ε"de|ned␈αby␈αthe␈αrules
␈βπ␈↓ ¬T␈ε+k␈↓ ε∞␈ε+k␈↓ εK␈ε+k␈↓ π¬␈ε+k
␈βC␈↓ βε␈ε(a␈↓ β3␈ε"=␈ε(␈α
e␈ε"␈α↓,
␈βG␈↓ ∧j␈ε(a␈↓ ¬→␈ε"=␈α
2␈↓ ¬Y␈ε(a␈↓ ε1␈ε"mod␈↓ ε{␈ε(f␈↓ π⊃␈ε";
␈βP␈↓ β→␈ε%0
␈βS␈↓ ∧⎇␈ε+k␈↓ ¬l␈ε+k␈↓ ¬⎇␈ε9␈␈ε%␈α␈1
␈βy␈↓ βε␈ε(d␈↓ β3␈ε"=␈↓ βa␈ε(b␈↓ ∧α␈ε(e␈ε",
␈β⎇␈↓ ∧k␈ε(d␈↓ ¬→␈ε"=␈α
(␈↓ ¬S␈ε(d␈↓ ε,␈ε"+␈↓ εX␈ε(b␈↓ ε␈␈ε(a␈↓ π$␈ε")␈↓ π6␈ε"mod␈↓ λ␈ε(f␈↓ λ∃␈ε";
␈β
ε␈↓ β→␈ε%0␈↓ βq␈ε%0
␈β
	␈↓ ∧⎇␈ε+k␈↓ ¬e␈ε+k␈↓ ¬v␈ε9␈␈ε%1␈↓ εh␈ε+k␈↓ π∩␈ε+k
␈β
→␈↓ 
p␈ε"(30)
␈β
+␈↓ εm␈ε+a␈↓ 	↓␈ε+f
␈β
/␈↓ β∧␈ε(u␈↓ β3␈ε"=␈ε(␈α
u␈ε",
␈β
3␈↓ ∧h␈ε(u␈↓ ¬→␈ε"=␈α
(␈↓ ¬S␈ε(u␈↓ ε/␈ε"+␈↓ ε[␈ε"2␈↓ π4␈ε(u␈↓ λπ␈ε")␈↓ λ→␈ε"mod␈↓ λc␈ε"(␈↓ λo␈ε"2␈↓ 	≤␈ε6␈␈ε"␈αλ1);
␈β
4␈↓ ε⎇␈ε-k␈↓ π␈ε;␈␈ε'␈α↓1
␈β
<␈↓ β→␈ε%0
␈β
?␈↓ ∧⎇␈ε+k␈↓ ¬h␈ε+k␈↓ ¬y␈ε9␈␈ε%␈α␈1␈↓ πH␈ε+k␈↓ πY␈ε9␈␈ε%1
␈β
a␈↓ π⊂␈ε+d␈↓ λw␈ε+f
␈β
e␈↓ βπ␈ε(v␈↓ β3␈ε"=␈↓ βa␈ε(b␈↓ ∧α␈ε(u␈ε"␈α␈,
␈β
i␈↓ ∧l␈ε(v␈↓ ¬→␈ε"=␈α
(␈↓ ¬S␈ε(v␈↓ ε,␈ε"+␈↓ εX␈ε(b␈↓ ε}␈ε"2␈↓ πV␈ε(u␈↓ π⎇␈ε")␈↓ λ∂␈ε"mod␈↓ λY␈ε"(␈↓ λe␈ε"2␈↓ 	∩␈ε6␈␈ε"␈αλ1).
␈β
j␈↓ π∨␈ε-k␈↓ π-␈ε;␈␈ε'␈α↓1
␈β
r␈↓ β→␈ε%0␈↓ βq␈ε%0
␈β
u␈↓ ∧⎇␈ε+k␈↓ ¬e␈ε+k␈↓ ¬u␈ε9␈␈ε%1␈↓ εg␈ε+k␈↓ πk␈ε+k
␈β∞6␈↓ ↓H␈ε"It␈αis␈αeasy␈αto␈αpro␈α␈v␈α␈e␈αby␈αinduction␈αon␈↓ ¬s␈ε(k␈↓ ε∪␈ε"that
␈β∂α␈↓ αC␈ε+k␈↓ εd␈ε+k␈↓ λ∀␈ε+f
␈β∂	␈↓ ↓H␈ε(a␈↓ ↓w␈ε"=␈α
(␈↓ α1␈ε"2␈↓ αU␈ε(e␈ε")␈↓ αv␈ε"mod␈↓ β@␈ε(f␈↓ βV␈ε";␈↓ ¬N␈ε(u␈↓ ¬␈␈ε"=␈α
(␈ε(c␈↓ εH␈ε"[␈↓ εR␈ε"2␈↓ ε{␈ε"]␈ε(u␈ε")␈↓ π,␈ε"mod␈↓ πv␈ε"(␈↓ λα␈ε"2␈↓ λ/␈ε6␈␈ε"␈αλ1);
␈β∂⊗␈↓ ↓[␈ε+k␈↓ ¬c␈ε+k
␈β∂!␈↓ α%␈ε↓␈␈↓ ∧λ␈ε↓↓␈↓ ε-␈ε↓␈␈↓ λ3␈ε↓↓
␈β∂$␈↓ 
p␈ε"(31)
␈β∂8␈↓ 	/␈ε+f
␈β∂?␈↓ ↓H␈ε(d␈↓ ↓w␈ε"=␈↓ α3␈ε"(␈↓ α?␈ε(b␈↓ αf␈ε".␈αε.␈αε.␈↓ β⊗␈ε(b␈↓ β6␈ε(b␈↓ βV␈ε")␈↓ βy␈ε(e␈↓ ∧≤␈ε"mod␈↓ ∧f␈ε(f␈↓ ∧|␈ε";␈↓ ¬Q␈ε(v␈↓ ¬␈␈ε"=␈↓ ε;␈ε(c␈↓ εJ␈ε"[␈↓ εT␈ε"(␈↓ ε`␈ε(b␈↓ πλ␈ε".␈αε.␈αε.␈↓ π8␈ε(b␈↓ πX␈ε(b␈↓ πx␈ε")␈↓ λ∃␈ε"]␈ε(u␈↓ λG␈ε"mod␈↓ 	⊃␈ε"(␈↓ 	≥␈ε"2␈↓ 	J␈ε6␈␈ε"␈αλ1).
␈β∂L␈↓ ↓[␈ε+k␈↓ αN␈ε+k␈↓ β%␈ε%1␈↓ βF␈ε%0␈↓ βb␈ε%2␈↓ ¬c␈ε+k␈↓ εp␈ε+k␈↓ πG␈ε%1␈↓ πg␈ε%0␈↓ λ∧␈ε%2
␈β⊂⊂␈↓ ε≤␈ε+f
␈β⊂⊗␈↓ ↓H␈ε"Hence␈α	the␈α
desired␈α	result,␈α
(␈ε(c␈↓ ∧j␈ε"[␈↓ ∧t␈ε(b␈ε"]␈ε(u␈ε")␈↓ ¬4␈ε"mod␈↓ ¬}␈ε"(␈↓ ε
␈ε"2␈↓ ε2␈ε6␈␈ε"␈αβ1),␈α
is␈↓ π-␈ε(v␈↓ πN␈ε".␈α∂The␈α
calculation␈α	of␈↓ 

␈ε(a␈↓ 
/␈ε",␈↓ 
C␈ε(d␈↓ 
g␈ε",␈↓ 
|␈ε(u␈↓ "␈ε",
␈β⊂#␈↓ π>␈ε+s␈↓ 
≥␈ε+k␈↓ 
U␈ε+k␈↓ ⊂␈ε+k
␈β⊂B␈↓ ↓H␈ε(v␈↓ ↓t␈ε"from␈↓ αF␈ε(a␈↓ β_␈ε",␈↓ β+␈ε(d␈↓ β⎇␈ε",␈↓ ∧⊂␈ε(u␈↓ ∧d␈ε",␈↓ ∧w␈ε(v␈↓ ¬P␈ε"tak␈α␈es␈↓ ε)␈ε(O␈↓ εF␈ε"(␈↓ εR␈ε"log␈↓ πε␈ε(f␈↓ π≠␈ε")␈α↓+␈↓ πM␈ε(O␈↓ πj␈ε"(␈↓ πv␈ε"log␈↓ λ*␈ε(f␈↓ λ?␈ε")␈α↓+␈↓ λq␈ε(O␈↓ 	
␈ε"(␈↓ 	→␈ε(f␈↓ 	/␈ε")␈α↓+␈↓ 	a␈ε(O␈↓ 	⎇␈ε"(␈↓ 
	␈ε(f␈↓ 
∨␈ε")␈α
=␈↓ 
c␈ε(O␈↓ 
␈␈ε"(␈↓ ␈ε(f␈↓  ␈ε")
␈β⊂N␈↓ ↓Y␈ε+k␈↓ αY␈ε+k␈↓ αj␈ε9␈␈ε%␈α␈1␈↓ β>␈ε+k␈↓ βN␈ε9␈␈ε%1␈↓ ∧%␈ε+k␈↓ ∧5␈ε9␈␈ε%1␈↓ ¬λ␈ε+k␈↓ ¬→␈ε9␈␈ε%␈α␈1
␈β⊂m␈↓ ↓H␈ε"cy␈α␈cles,␈α∞and␈α∞therefore␈α∞the␈α∞en␈α␈tire␈α∞calculation␈α
can␈α∞be␈α∞done␈α∞in␈ε(␈α∞s␈↓ 	␈ε(O␈↓ 	(␈ε"(␈↓ 	4␈ε(f␈↓ 	I␈ε")␈α
=␈↓ 
∪␈ε(O␈↓ 
0␈ε"(␈↓ 
<␈ε(f␈↓ 
W␈ε"log␈↓ ␈ε(f␈↓  ␈ε")
␈β⊃_␈↓ ↓H␈ε"cy␈α␈cles␈αas␈αdesired.
␈β∪(

␈β↓U␈↓ ↓H␈ε"290␈↓ 
b␈ε"4.3.3
␈β↓\␈↓ α=␈ε∞ARITH␈α↓MET␈α↓IC
␈βα$␈↓ α␈ε"The␈α
reader␈α	will␈α
|nd␈α	it␈α
instructiv␈α␈e␈α
to␈α	study␈α
the␈α	ingenious␈α
meth␈α↓od␈α	represen␈α␈ted
␈βαO␈↓ ↓H␈ε"by␈α
(30)␈α
and␈α
(31)␈αv␈α␈ery␈α
carefully.␈α∂Similar␈α
techniques␈αare␈α
discussed␈α
in␈α
Section␈α
4.6.3.
␈βαz␈↓ α␈ε"Sch␈↓ αD␈ε"∪␈↓ αD␈ε"o␈↓ αV␈ε"nhage's␈α	paper␈α	[␈ε/Computing␈ε2␈α	1␈ε"␈α	(1966),␈α
182↑196]␈α	sh␈α↓o␈α␈ws␈α	that␈αλthese␈α	ideas␈α	can
␈ββ≠␈↓ 	I␈ε9p
␈ββ∨␈↓ 	b␈∧β∨	bαD
␈ββ ␈↓ 	b␈ε%2␈↓ 	v␈ε%l␈α␈g␈↓ 
∩␈ε+n
␈ββ&␈↓ ↓H␈ε"be␈α∂extended␈α∞to␈α∂the␈α∂m␈α␈ultiplication␈α∂of␈ε(␈α∂n␈ε"-bit␈α∂n␈α␈um␈α␈bers␈α∞using␈↓ λn␈ε(r␈↓ 		␈ε6→␈↓ 	7␈ε"2␈↓ 
5␈ε"m␈α↓oduli,
␈ββQ␈↓ ↓H␈ε"obtaining␈α
a␈αmeth␈α↓od␈αanalogous␈αto␈αAlgorithm␈αC.␈α
W␈α⎇e␈αshall␈αn␈α↓ot␈αdw␈α␈ell␈αon␈αthe␈α
details
␈ββ|␈↓ ↓H␈ε"here,␈α
since␈α	Algorithm␈α
C␈α
is␈α	alw␈α␈a␈α␈ys␈α
superior;␈α
in␈α
fact,␈α
an␈α
ev␈α␈en␈α	better␈α
meth␈α↓od␈α
is␈α	next
␈β∧'␈↓ ↓H␈ε"on␈αour␈αagenda.
␈β∧Z␈↓ ↓H␈ε2C.␈α∂Use␈α⊂of␈α⊂discrete␈α⊂F␈α⎇ourier␈α∂transforms.␈ε"␈α The␈α⊂critical␈α⊂problem␈α⊂in␈α∂high-precision
␈β¬ε␈↓ ↓H␈ε"m␈α␈ultiplication␈αis␈αthe␈αdetermination␈αof␈α\␈↓ ε5␈ε"con␈α␈v␈α␈olution␈αproducts"␈αsuch␈αas
␈β¬=␈↓ ∧R␈ε(u␈↓ ∧v␈ε(v␈↓ ¬ ␈ε"+␈↓ ¬L␈ε(u␈↓ ε≥␈ε(v␈↓ εH␈ε"+␈↓ εt␈ε6↓␈αε↓␈αε↓␈↓ π&␈ε"+␈↓ πR␈ε(u␈↓ πw␈ε(v␈↓ λ_␈ε",
␈β¬J␈↓ ∧g␈ε+r␈↓ ¬λ␈ε%0␈↓ ¬a␈ε+r␈↓ ¬o␈ε9␈␈ε%1␈↓ ε/␈ε%1␈↓ πf␈ε%0␈↓ λ	␈ε+r
␈β¬u␈↓ ↓H␈ε"and␈αthere␈αis␈αan␈αin␈α␈timate␈αrelation␈α
bet␈α␈w␈α␈een␈αcon␈α␈v␈α␈olutions␈αand␈αan␈αimportan␈α␈t␈αmath-
␈βε ␈↓ ↓H␈ε"ematical␈αconcept␈αcalled␈α
\F␈α⎇ourier␈αtransformation."␈α⊃If␈↓ λ∞␈ε(|␈↓ λ0␈ε"=␈↓ λ←␈ε"e␈↓ λo␈ε"x␈↓ 	β␈ε"p␈↓ 	↔␈ε"(2␈↓ 	5␈ε(→␈↓ 	K␈ε(i␈ε"/␈↓ 	i␈ε(K␈↓ 
␈ε")␈α
is␈αa␈↓ 
g␈ε(K␈↓ 
␈ε"th
␈βεK␈↓ ↓H␈ε"ro␈α↓ot␈α∂of␈α⊂unit␈α␈y,␈α⊃the␈α⊂one-dimensional␈↓ ε↓␈ε"F␈α⎇ourier␈α∂transform␈α⊂of␈α⊂the␈α⊂sequence␈α⊂of␈α∂com-
␈βεv␈↓ ↓H␈ε"plex␈α	n␈α␈um␈α␈bers␈αλ(␈↓ β+␈ε(u␈↓ βQ␈ε",␈↓ βa␈ε(u␈↓ ∧ε␈ε",␈↓ ∧⊗␈ε".␈αε.␈αε.␈↓ ∧F␈ε",␈↓ ∧V␈ε(u␈↓ ¬5␈ε")␈α	is␈α	de|ned␈α	to␈α	be␈α	the␈αλsequence␈α	(␈↓ 	⊃␈ε(u␈↓ 	∪␈ε"∂␈↓ 	7␈ε",␈↓ 	G␈ε(u␈↓ 	H␈ε"∂␈↓ 	l␈ε",␈↓ 	|␈ε".␈αε.␈αε.␈↓ 
,␈ε",␈↓ 
<␈ε(u␈↓ 
>␈ε"∂␈↓ ⊗␈ε"),
␈βπβ␈↓ β@␈ε%0␈↓ βv␈ε%1␈↓ ∧k␈ε+K␈↓ ¬π␈ε9␈␈ε%␈α␈1␈↓ 	&␈ε%0␈↓ 	\␈ε%1␈↓ 
L␈ε+K␈↓ 
h␈ε9␈␈ε%1
␈βπ"␈↓ ↓H␈ε"where
␈βπ+␈↓ ¬∃␈ε↓X
␈βπE␈↓ εε␈ε+st
␈βπM␈↓ ∧→␈ε(u␈↓ ∧~␈ε"∂␈↓ ∧G␈ε"=␈↓ ¬n␈ε(|␈↓ ε!␈ε(u␈↓ εC␈ε",␈↓ π≠0␈ε6␈α
∀␈ε(␈α
s␈ε"␈α
<␈↓ λ.␈ε(K␈↓ λQ␈ε".␈↓ 
p␈ε"(32)
␈βπY␈↓ ∧.␈ε+s␈↓ ε6␈ε+t
␈βπ⎇␈↓ ∧u␈ε%0␈ε9␈α↓∀␈ε+␈α␈t␈ε%␈α↓<␈↓ ¬K␈ε+K
␈βλ"␈↓ ↓H␈ε"Letting␈α(␈↓ αS␈ε(v␈↓ αT␈ε"∂␈↓ αw␈ε",␈↓ βπ␈ε"∂␈↓ βπ␈ε(v␈↓ β*␈ε",␈↓ β:␈ε".␈αε.␈αε.␈↓ βj␈ε",␈↓ βz␈ε(v␈↓ β{␈ε"∂␈↓ ∧W␈ε")␈αbe␈αde|ned␈αin␈αthe␈αsame␈αw␈α␈a␈α␈y,␈αas␈αthe␈αF␈α⎇ourier␈αtransform
␈βλ.␈↓ αf␈ε%0␈↓ β~␈ε%1␈↓ ∧
␈ε+K␈↓ ∧)␈ε9␈␈ε%1
␈βλM␈↓ ↓H␈ε"of␈α
(␈↓ ↓␈␈ε(v␈↓ α"␈ε",␈↓ α2␈ε(v␈↓ αT␈ε",␈↓ αd␈ε".␈αε.␈αε.␈↓ β∀␈ε",␈↓ β$␈ε(v␈↓ β␈␈ε"),␈α∞it␈α∞is␈α∞n␈α↓ot␈α
di}cult␈α∞to␈α∞see␈α
that␈α∞(␈↓ π|␈ε(u␈↓ π⎇␈ε"∂␈↓ λ!␈ε(v␈↓ λ"␈ε"∂␈↓ λE␈ε",␈↓ λU␈ε(u␈↓ λV␈ε"∂␈↓ λ{␈ε"∂␈↓ λ{␈ε(v␈↓ 	≡␈ε",␈↓ 	.␈ε".␈αε.␈αε.␈↓ 	↑␈ε",␈↓ 	n␈ε(u␈↓ 	p␈ε"∂␈↓ 
H␈ε(v␈↓ 
I␈ε"∂␈↓  ␈ε")
␈βλZ␈↓ α⊃␈ε%0␈↓ αC␈ε%1␈↓ β5␈ε+K␈↓ βQ␈ε9␈␈ε%1␈↓ λ⊃␈ε%0␈↓ λ4␈ε%0␈↓ λj␈ε%1␈↓ 	
␈ε%1␈↓ 	}␈ε+K␈↓ 
~␈ε9␈␈ε%␈α␈1␈↓ 
V␈ε+K␈↓ 
r␈ε9␈␈ε%1
␈βλx␈↓ ↓H␈ε"is␈αthe␈αtransform␈αof␈α(␈↓ ∧ε␈ε(w␈↓ ∧0␈ε",␈↓ ∧@␈ε(w␈↓ ∧j␈ε",␈↓ ∧z␈ε".␈αε.␈αε.␈↓ ¬*␈ε",␈↓ ¬:␈ε(w␈↓ ε≡␈ε"),␈αwhere
␈β	¬␈↓ ∧∨␈ε%0␈↓ ∧Y␈ε%1␈↓ ¬T␈ε+K␈↓ ¬o␈ε9␈␈ε%1
␈β	*␈↓ α↔␈ε(w␈↓ αJ␈ε"=␈↓ αx␈ε(u␈↓ β≤␈ε(v␈↓ βF␈ε"+␈↓ βr␈ε(u␈↓ ∧C␈ε(v␈↓ ∧n␈ε"+␈↓ ¬~␈ε6↓␈αε↓␈αε↓␈↓ ¬L␈ε"+␈↓ ¬x␈ε(u␈↓ ε≥␈ε(v␈↓ εF␈ε"+␈↓ εr␈ε(u␈↓ πQ␈ε(v␈↓ λ'␈ε"+␈↓ λS␈ε6↓␈αε↓␈αε↓␈↓ 	¬␈ε"+␈↓ 	1␈ε(u␈↓ 
α␈ε(v
␈β	7␈↓ α0␈ε+r␈↓ β
␈ε+r␈↓ β.␈ε%0␈↓ ∧π␈ε+r␈↓ ∧∃␈ε9␈␈ε%␈α␈1␈↓ ∧U␈ε%1␈↓ ε␈ε%0␈↓ ε/␈ε+r␈↓ ππ␈ε+K␈↓ π"␈ε9␈␈ε%1␈↓ πb␈ε+r␈↓ πp␈ε%+1␈↓ 	E␈ε+r␈↓ 	S␈ε%+1␈↓ 
∪␈ε+K␈↓ 
/␈ε9␈␈ε%␈α␈1
␈β	W␈↓ β`␈ε↓X
␈β	z␈↓ αJ␈ε"=␈↓ ¬↓␈ε(u␈↓ ¬"␈ε(v␈↓ ¬C␈ε".
␈β
ε␈↓ ¬⊗␈ε+i␈↓ ¬4␈ε+j
␈β
*␈↓ αx␈ε+i␈ε%␈α␈+␈↓ β ␈ε+j␈↓ β.␈ε9⊃␈↓ βK␈ε+r␈↓ β↑␈ε%(modulo␈↓ ∧S␈ε+K␈↓ ∧o␈ε%)
␈β
V␈↓ ↓H␈ε"When␈↓ α2␈ε(K␈↓ αb␈ε6∃␈ε"␈α
2␈ε(n␈ε6␈α	␈␈ε"␈α
1␈α∞and␈↓ ∧Z␈ε(u␈↓ ¬⊂␈ε"=␈↓ ¬A␈ε(u␈↓ ε$␈ε"=␈↓ εV␈ε6↓␈αε↓␈αε↓␈↓ π
␈ε"=␈↓ π>␈ε(u␈↓ λ*␈ε"=␈↓ λ\␈ε(v␈↓ 	∂␈ε"=␈↓ 	@␈ε(v␈↓ 
 ␈ε"=␈↓ 
Q␈ε6↓␈αε↓␈αε↓␈↓ λ␈ε"=
␈β
b␈↓ ∧n␈ε+n␈↓ ¬V␈ε+n␈ε%+␈α␈1␈↓ πS␈ε+K␈↓ πo␈ε9␈␈ε%␈α␈1␈↓ λm␈ε+n␈↓ 	Q␈ε+n␈ε%+1
␈β↓␈↓ ↓H␈ε(v␈↓ α2␈ε"=␈α∂0,␈α⊂the␈↓ βR␈ε(w␈↓ βl␈ε"'s␈α∂are␈α∂just␈α∂what␈α∂w␈α␈e␈α∂need␈α∂for␈α∂m␈α␈ultiplication,␈α⊂since␈α∂the␈α∞terms
␈β∞␈↓ ↓Y␈ε+K␈↓ ↓u␈ε9␈␈ε%␈α␈1
␈β,␈↓ ↓H␈ε(u␈↓ α&␈ε(v␈↓ αx␈ε"+␈↓ β ␈ε6↓␈αε↓␈αε↓␈↓ βM␈ε"+␈↓ βu␈ε(u␈↓ ∧F␈ε(v␈↓ ¬,␈ε"v␈α}anish␈α	when␈α
0␈ε6␈α
∀␈↓ π>␈ε(r␈↓ πY␈ε6∀␈ε"␈α
2␈ε(n␈ε6␈αβ␈␈ε"␈α∧2.␈α∂In␈α
other␈α
w␈α␈ords,␈ε/␈α
the
␈β9␈↓ ↓\␈ε+K␈↓ ↓x␈ε9␈␈ε%1␈↓ α8␈ε+r␈↓ αF␈ε%+␈α␈1␈↓ ∧
␈ε+r␈↓ ∧_␈ε%+␈α␈1␈↓ ∧X␈ε+K␈↓ ∧s␈ε9␈␈ε%1
␈βX␈↓ ↓H␈ε/transform␈α∞of␈α∂a␈α∞con␈α␈v␈α␈olution␈α∂product␈α∂is␈α∞the␈α∂ordinary␈α∂product␈α∞of␈α∂the␈α∞transforms.
␈βd␈↓ 	G␈ε↓␈␈↓ 
C␈ε↓↓
␈ββ␈↓ ↓H␈ε"This␈αidea␈αis␈αactually␈αa␈αspecial␈αcase␈αof␈↓ ε→␈ε"T␈α⎇o␈α↓om's␈αuse␈αof␈αpolyn␈α↓omials␈↓ 	U␈ε"cf.␈α(10)␈↓ 
Q␈ε",␈αwith
␈β.␈↓ ↓H␈ε(x␈ε"␈αreplaced␈αby␈αro␈α↓ots␈αof␈αunit␈α␈y.
␈βY␈↓ α␈ε"If␈↓ α-␈ε(K␈↓ αY␈ε"is␈αλa␈α	po␈α␈w␈α␈er␈α	of␈α	2,␈α	the␈α	discrete␈α	F␈α⎇ourier␈α	transform␈αλ(32)␈α	can␈α	be␈α	obtained␈αλquite
␈β
∧␈↓ ↓H␈ε"rapidly␈α∞when␈α∂the␈α∂computations␈α∞are␈α∂arranged␈α∞in␈α∂a␈α∂certain␈α∞w␈α␈a␈α␈y,␈α⊂and␈α∞so␈α∂can␈α∞the
␈β
0␈↓ ↓H␈ε"in␈α␈v␈α␈erse␈αtransform␈α
(determining␈α
the␈↓ ¬z␈ε(w␈↓ ε∃␈ε"'s␈α
from␈α
the␈↓ πO␈ε(w␈↓ πT␈ε"∂␈↓ πj␈ε"'s).␈α∪This␈α
propert␈α␈y␈α
of␈αF␈α⎇ourier
␈β
[␈↓ ↓H␈ε"transforms␈α	w␈α␈as␈α	exploited␈α
by␈α	V.␈↓ ¬2␈ε"Strassen␈α
in␈α	1968,␈α
wh␈α↓o␈α	disco␈α␈v␈α␈ered␈α
h␈α↓o␈α␈w␈α	to␈α	m␈α␈ultiply
␈β∞ε␈↓ ↓H␈ε"large␈αn␈α␈um␈α␈bers␈αfaster␈αthan␈αw␈α␈as␈αpossible␈αunder␈αall␈αpreviously␈αkn␈α↓o␈α␈wn␈αschemes.␈α⊂He
␈β∞1␈↓ ↓H␈ε"and␈αA.␈α
Sch␈↓ αw␈ε"∪␈↓ αw␈ε"o␈↓ β	␈ε"nhage␈αlater␈α
re|ned␈αthe␈α
meth␈α↓od␈αand␈αpublished␈α
impro␈α␈v␈α␈ed␈αprocedures
␈β∞\␈↓ ↓H␈ε"in␈ε/␈α
Computing␈ε2␈α
7␈ε"␈α
(1971),␈α∞281↑292.␈α∪In␈α
order␈α∞to␈α
understand␈α
their␈↓ 	0␈ε"approach␈α
to␈α
the
␈β∂λ␈↓ ↓H␈ε"problem,␈αlet␈αus␈α|rst␈αtak␈α␈e␈αa␈αlo␈α↓ok␈αat␈αthe␈αmechanism␈αof␈↓ λ∀␈ε"fast␈αF␈α⎇ourier␈αtransforms.
␈β∂-␈↓ ¬L␈ε+k
␈β∂3␈↓ α␈ε"Giv␈α␈en␈α∞a␈α∞sequence␈α∞of␈↓ ∧X␈ε(K␈↓ ¬λ␈ε"=␈↓ ¬:␈ε"2␈↓ ¬l␈ε"complex␈α∞n␈α␈um␈α␈bers␈α∞(␈↓ λ~␈ε(u␈↓ λ?␈ε",␈↓ λO␈ε".␈αε.␈αε.␈↓ λ␈␈ε",␈↓ 	∂␈ε(u␈↓ 	n␈ε"),␈α∞and␈α∞giv␈α␈en
␈β∂?␈↓ λ.␈ε%0␈↓ 	$␈ε+K␈↓ 	@␈ε9␈␈ε%␈α␈1
␈β∂↑␈↓ ↓H␈ε"the␈αcomplex␈αn␈α␈um␈α␈ber
␈β⊂	␈↓ ¬0␈ε(|␈↓ ¬R␈ε"=␈↓ ε␈ε"e␈↓ ε⊂␈ε"x␈↓ ε$␈ε"p␈↓ ε8␈ε"(2␈↓ εV␈ε(→␈↓ εl␈ε(i␈ε"␈α↓/␈↓ π␈ε(K␈↓ π.␈ε"),
␈β⊂@␈↓ ↓H␈ε"the␈α	sequence␈α	(␈↓ β ␈ε(u␈↓ β!␈ε"∂␈↓ βF␈ε",␈↓ βV␈ε".␈αε.␈αε.␈↓ ∧ε␈ε",␈↓ ∧⊗␈ε(u␈↓ ∧↔␈ε"∂␈↓ ∧t␈ε")␈α
de|ned␈α	in␈α	(32)␈α	can␈α
be␈α	calculated␈α	rapidly␈α	by␈α	carrying
␈β⊂L␈↓ β5␈ε%0␈↓ ∧*␈ε+K␈↓ ∧F␈ε9␈␈ε%1
␈β⊂k␈↓ ↓H␈ε"out␈α
the␈αfollo␈α␈wing␈αscheme.␈α∀(In␈αthese␈α
form␈α␈ulas␈αthe␈αparameters␈↓ 	↓␈ε(s␈↓ 	,␈ε"and␈↓ 	q␈ε(t␈↓ 
_␈ε"are␈α
either
␈β⊂w␈↓ 	∩␈ε+j␈↓ 	}␈ε+j
␈β⊃⊂␈↓ ε3␈ε+k
␈β⊃⊗␈↓ ↓H␈ε"0␈αor␈α1,␈αso␈αthat␈αeach␈α\pass"␈αrepresen␈α␈ts␈↓ ε!␈ε"2␈↓ εQ␈ε"computations.)
␈β∪(

␈β↓U␈↓ ↓H␈ε"4.3.3␈↓ 
)␈ε"?␈↓ 
v␈ε"291
␈β↓\␈↓ εF␈ε∞H␈α↓O␈α␈W␈α
F␈α|AST␈α
CA␈α↓N␈α	W␈α↓E␈α
MUL␈α}TI␈α↓P␈α␈L␈α}Y
␈βα≤␈↓ β+␈ε%[␈↓ β4␈ε%0]
␈βα"␈↓ ↓H␈ε"Pass␈α0.␈α→Let␈↓ β⊃␈ε(A␈↓ βN␈ε"(␈↓ βZ␈ε(t␈↓ ∧&␈ε",␈↓ ∧6␈ε".␈αε.␈αε.␈↓ ∧f␈ε",␈↓ ∧v␈ε(t␈↓ ¬∀␈ε")␈α
=␈↓ ¬X␈ε(u␈↓ ¬z␈ε",␈αwhere␈ε(␈αt␈ε"␈α
=␈α
(␈↓ πI␈ε(t␈↓ λ≠␈ε".␈αε.␈αε.␈↓ λK␈ε(t␈↓ λi␈ε")␈↓ 	ε␈ε".
␈βα/␈↓ βg␈ε+k␈↓ βw␈ε9␈␈ε%1␈↓ ¬β␈ε%0␈↓ ¬m␈ε+t␈↓ πV␈ε+k␈↓ πg␈ε9␈␈ε%␈α␈1␈↓ λX␈ε%0␈↓ λu␈ε%2
␈βαR␈↓ β'␈ε%[␈↓ β0␈ε%1]
␈βαX␈↓ ↓H␈ε"Pass␈α1.␈α→Set␈↓ β
␈ε(A␈↓ βJ␈ε"(␈↓ βV␈ε(s␈↓ ∧&␈ε",␈↓ ∧6␈ε(t␈↓ ¬α␈ε",␈↓ ¬∩␈ε".␈αε.␈αε.␈↓ ¬B␈ε",␈↓ ¬R␈ε(t␈↓ ¬p␈ε")␈ε6␈α
␈ 
␈βαd␈↓ βg␈ε+k␈↓ βw␈ε9␈␈ε%1␈↓ ∧C␈ε+k␈↓ ∧S␈ε9␈␈ε%2␈↓ ¬←␈ε%0
␈ββ∧␈↓ ∧T␈ε%[␈↓ ∧]␈ε%0]␈↓ π7␈ε%(␈↓ πA␈ε+s␈↓ λ∧␈ε%0␈↓ λ∪␈ε%...␈↓ λ.␈ε%0␈↓ λ=␈ε%)␈↓ 	␈ε%[␈↓ 	∃␈ε%0]
␈ββ
␈↓ ∧:␈ε(A␈↓ ∧w␈ε"(0,␈↓ ¬%␈ε(t␈↓ ¬q␈ε",␈↓ ε↓␈ε".␈αε.␈αε.␈↓ ε1␈ε",␈↓ εA␈ε(t␈↓ ε←␈ε")␈αλ+␈↓ π∨␈ε(|␈↓ λ←␈ε6↓␈↓ λq␈ε(A␈↓ 	.␈ε"(1,␈↓ 	\␈ε(t␈↓ 
(␈ε",␈↓ 
8␈ε".␈αε.␈αε.␈↓ 
h␈ε",␈↓ 
x␈ε(t␈↓ ⊗␈ε").
␈ββ∞␈↓ πO␈ε-k␈↓ π]␈ε;␈␈ε'␈α↓1␈↓ λG␈ε'2
␈ββ↔␈↓ ¬2␈ε+k␈↓ ¬B␈ε9␈␈ε%2␈↓ εN␈ε%0␈↓ 	i␈ε+k␈↓ 	z␈ε9␈␈ε%2␈↓ ε␈ε%0
␈ββ:␈↓ β'␈ε%[␈↓ β0␈ε%2]
␈ββ@␈↓ ↓H␈ε"Pass␈α2.␈α→Set␈↓ β
␈ε(A␈↓ βJ␈ε"(␈↓ βV␈ε(s␈↓ ∧&␈ε",␈↓ ∧6␈ε(s␈↓ ¬ε␈ε",␈↓ ¬⊗␈ε(t␈↓ ¬b␈ε",␈↓ ¬r␈ε".␈αε.␈αε.␈↓ ε"␈ε",␈↓ ε2␈ε(t␈↓ εP␈ε")␈ε6␈α
␈ 
␈ββL␈↓ βg␈ε+k␈↓ βw␈ε9␈␈ε%1␈↓ ∧G␈ε+k␈↓ ∧W␈ε9␈␈ε%2␈↓ ¬#␈ε+k␈↓ ¬3␈ε9␈␈ε%3␈↓ ε?␈ε%0
␈ββl␈↓ αQ␈ε%[␈↓ αZ␈ε%1]␈↓ ε∀␈ε%(␈↓ ε≡␈ε+s␈↓ εa␈ε+s␈↓ π$␈ε%0␈↓ π3␈ε%...␈↓ πN␈ε%0␈↓ π]␈ε%)␈↓ λ+␈ε%[␈↓ λ5␈ε%1]
␈ββr␈↓ α7␈ε(A␈↓ αt␈ε"(␈↓ β␈ε(s␈↓ βP␈ε",␈αε0,␈↓ ∧α␈ε(t␈↓ ∧N␈ε",␈↓ ∧↑␈ε".␈αε.␈αε.␈↓ ¬∞␈ε",␈↓ ¬≡␈ε(t␈↓ ¬<␈ε")␈αλ+␈↓ ¬|␈ε(|␈↓ π␈␈ε6↓␈↓ λ⊃␈ε(A␈↓ λN␈ε"(␈↓ λZ␈ε(s␈↓ 	*␈ε",␈αε1,␈↓ 	\␈ε(t␈↓ 
(␈ε",␈↓ 
8␈ε".␈αε.␈αε.␈↓ 
h␈ε",␈↓ 
x␈ε(t␈↓ ⊗␈ε").
␈ββv␈↓ ε,␈ε-k␈↓ ε:␈ε;␈␈ε'␈α↓2␈↓ εo␈ε-k␈↓ ε⎇␈ε;␈␈ε'␈α↓1␈↓ πg␈ε'2
␈ββ}␈↓ β⊃␈ε+k␈↓ β!␈ε9␈␈ε%1␈↓ ∧∂␈ε+k␈↓ ∧∨␈ε9␈␈ε%3␈↓ ¬+␈ε%0␈↓ λk␈ε+k␈↓ λ|␈ε9␈␈ε%␈α␈1␈↓ 	i␈ε+k␈↓ 	z␈ε9␈␈ε%3␈↓ ε␈ε%0
␈β∧(␈↓ α␈ε".␈αε.␈αε.
␈β∧W␈↓ β)␈ε%[␈↓ β2␈ε+k␈↓ βC␈ε%]
␈β∧]␈↓ ↓H␈ε"Pass␈↓ α~␈ε(k␈↓ α.␈ε".␈α→Set␈↓ β∂␈ε(A␈↓ βM␈ε"(␈↓ βY␈ε(s␈↓ ∧)␈ε",␈↓ ∧9␈ε".␈αε.␈αε.␈↓ ∧i␈ε",␈↓ ∧y␈ε(s␈↓ ¬≠␈ε",␈↓ ¬+␈ε(s␈↓ ¬M␈ε")␈ε6␈α
␈ 
␈β∧j␈↓ βj␈ε+k␈↓ β{␈ε9␈␈ε%␈α␈1␈↓ ¬
␈ε%1␈↓ ¬<␈ε%0
␈β¬	␈↓ βN␈ε%[␈↓ βW␈ε+k␈↓ βh␈ε9␈␈ε%␈α␈1]␈↓ εf␈ε%(␈↓ εq␈ε+s␈↓ π
␈ε+s␈↓ π*␈ε%..␈α␈.␈↓ πD␈ε+s␈↓ λπ␈ε%)␈↓ λV␈ε%[␈↓ λ←␈ε+k␈↓ λo␈ε9␈␈ε%1]
␈β¬⊂␈↓ β4␈ε(A␈↓ ∧∨␈ε"(␈↓ ∧+␈ε(s␈↓ ∧{␈ε",␈↓ ¬␈ε".␈αε.␈αε.␈↓ ¬;␈ε",␈↓ ¬K␈ε(s␈↓ ¬m␈ε",␈αε0)␈αλ+␈↓ εO␈ε(|␈↓ λ*␈ε6↓␈↓ λ<␈ε(A␈↓ 	'␈ε"(␈↓ 	3␈ε(s␈↓ 
β␈ε",␈↓ 
∪␈ε".␈αε.␈αε.␈↓ 
C␈ε",␈↓ 
S␈ε(s␈↓ 
t␈ε",␈αε1).
␈β¬∪␈↓ ε␈␈ε'0␈↓ π≠␈ε'1␈↓ πR␈ε-k␈↓ π`␈ε;␈␈ε'␈α↓1␈↓ λ∩␈ε'2
␈β¬≤␈↓ ∧<␈ε+k␈↓ ∧L␈ε9␈␈ε%1␈↓ ¬\␈ε%1␈↓ 	D␈ε+k␈↓ 	T␈ε9␈␈ε%1␈↓ 
d␈ε%1
␈β¬O␈↓ ↓H␈ε"It␈αis␈αfairly␈αeasy␈αto␈αpro␈α␈v␈α␈e␈αby␈αinduction␈αthat␈αw␈α␈e␈αha␈α␈v␈α␈e
␈βε≥␈↓ αε␈ε%[␈↓ α∂␈ε+j␈↓ α≤␈ε%]
␈βε%␈↓ ↓l␈ε(A␈↓ α'␈ε"(␈↓ α3␈ε(s␈↓ ββ␈ε",␈↓ β∪␈ε".␈αε.␈αε.␈↓ βC␈ε",␈↓ βS␈ε(s␈↓ ∧!␈ε",␈↓ ∧1␈ε(t␈↓ ¬)␈ε",␈↓ ¬9␈ε".␈αε.␈αε.␈↓ ¬i␈ε",␈↓ ¬y␈ε(t␈↓ ε↔␈ε")
␈βε1␈↓ αD␈ε+k␈↓ αT␈ε9␈␈ε%1␈↓ βd␈ε+k␈↓ βt␈ε9␈␈↓ ∧∩␈ε+j␈↓ ∧>␈ε+k␈↓ ∧O␈ε9␈␈↓ ∧m␈ε+j␈↓ ∧z␈ε9␈␈ε%1␈↓ εε␈ε%0
␈βεL␈↓ ∧|␈ε↓X
␈βεf␈↓ ε7␈ε%(␈↓ εA␈ε+s␈↓ ε↑␈ε+s␈↓ εz␈ε%...␈↓ π∃␈ε+s␈↓ πX␈ε%)␈↓ πq␈ε9↓␈ε%␈α␈(␈↓ λ∧␈ε+t␈↓ λD␈ε%...␈↓ λ←␈ε+t␈↓ 	≥␈ε%0␈↓ 	-␈ε%.␈α␈..␈↓ 	G␈ε%0␈↓ 	V␈ε%)
␈βεn␈↓ βe␈ε"=␈↓ ε∨␈ε(|␈↓ 	w␈ε(u␈↓ 
_␈ε",␈↓ 
p(33)
␈βεp␈↓ εO␈ε'0␈↓ εl␈ε'1␈↓ π#␈ε-k␈↓ π1␈ε;␈␈ε'1␈↓ πb␈ε'2␈↓ λ∂␈ε-k␈↓ λ≥␈ε;␈␈ε'␈α↓1␈↓ λj␈ε-k␈↓ λx␈ε;␈␈↓ 	⊂␈ε-j␈↓ 	a␈ε'2
␈βεz␈↓ 
␈ε+t
␈βπ≡␈↓ ∧∪␈ε%0␈ε9∀␈↓ ∧?␈ε+t␈↓ ¬␈ε%,␈↓ ¬	␈ε%.␈α␈..␈↓ ¬#␈ε%,␈↓ ¬,␈ε+t␈↓ ¬k␈ε9∀␈ε%␈α␈1
␈βπ(␈↓ ∧K␈ε-k␈↓ ∧Y␈ε;␈␈ε'1␈↓ ¬7␈ε-k␈↓ ¬E␈ε;␈␈↓ ¬↑␈ε-j
␈βπT␈↓ ↓H␈ε"so␈αthat
␈βλ!␈↓ α}␈ε%[␈↓ βπ␈ε+k␈↓ β_␈ε%]
␈βλ(␈↓ αd␈ε(A␈↓ β"␈ε"(␈↓ β.␈ε(s␈↓ β}␈ε",␈↓ ∧∞␈ε".␈αε.␈αε.␈↓ ∧>␈ε",␈↓ ∧N␈ε(s␈↓ ∧p␈ε",␈↓ ¬␈ε(s␈↓ ¬"␈ε")␈α
=␈↓ ¬f␈ε(u␈↓ ¬g␈ε"∂␈↓ ε
␈ε",␈↓ εb␈ε"where␈ε(␈αs␈ε"␈α
=␈α
(␈↓ λ∨␈ε(s␈↓ λA␈ε(s␈↓ λi␈ε".␈αε.␈αε.␈↓ 	→␈ε(s␈↓ 	i␈ε")␈↓ 
ε␈ε".␈↓ 
p␈ε"(34)
␈βλ5␈↓ β?␈ε+k␈↓ βP␈ε9␈␈ε%1␈↓ ∧←␈ε%1␈↓ ¬⊃␈ε%0␈↓ ¬{␈ε+s␈↓ λ0␈ε%0␈↓ λR␈ε%1␈↓ 	*␈ε+k␈↓ 	;␈ε9␈␈ε%␈α␈1␈↓ 	u␈ε%2
␈βλ⎇␈↓ ↓H␈ε"(Note␈α⊂the␈α⊃rev␈α␈ersed␈α⊃order␈α⊃of␈α⊃the␈α⊂binary␈α⊃digits␈α⊃in␈ε(␈α⊃s␈ε".␈α≡F␈α⎇or␈α⊃further␈α⊃discussion␈α⊂of
␈β	(␈↓ ↓H␈ε"transforms␈αsuch␈αas␈αthis,␈αsee␈αSection␈α4.6.4.)
␈β	S␈↓ α␈ε"T␈α⎇o␈α∪get␈α∩the␈↓ βO␈ε"in␈α␈v␈α␈erse␈α∩F␈α⎇ourier␈α∪transform␈α∪(␈↓ π	␈ε(u␈↓ π.␈ε",␈↓ π>␈ε".␈αε.␈αε.␈↓ πn␈ε",␈↓ π}␈ε(u␈↓ λ]␈ε")␈α∪from␈α∩the␈α∪v␈α}alues␈α∩of
␈β	←␈↓ π≥␈ε%0␈↓ λ∪␈ε+K␈↓ λ/␈ε9␈␈ε%␈α␈1
␈β	}␈↓ ↓H␈ε"(␈↓ ↓T␈ε(u␈↓ ↓U␈ε"∂␈↓ ↓y␈ε",␈↓ α	␈ε".␈αε.␈αε.␈↓ α9␈ε",␈↓ αI␈ε(u␈↓ αK␈ε"∂␈↓ β(␈ε"),␈αw␈α␈e␈αma␈α␈y␈αn␈α↓ote␈αthat␈αthe␈α\double␈αtransform"␈αis
␈β
␈↓ ↓h␈ε%0␈↓ α↑␈ε+K␈↓ αz␈ε9␈␈ε%␈α␈1
␈β
4␈↓ αi␈ε↓X␈↓ ¬␈ε↓X
␈β
N␈↓ ↓o␈ε"∂␈↓ β[␈ε+r␈↓ βi␈ε+s␈↓ ¬⎇␈ε+r␈↓ ε␈ε+s␈↓ ε2␈ε+st
␈β
V␈↓ ↓l␈ε(u␈↓ ↓o␈ε"∂␈↓ α~␈ε"=␈↓ βC␈ε(|␈↓ βy␈ε(u␈↓ βz␈ε"∂␈↓ ∧'␈ε"=␈↓ ¬e␈ε(|␈↓ ε~␈ε(|␈↓ εM␈ε(u
␈β
b␈↓ α␈ε+r␈↓ ∧
␈ε+s␈↓ εb␈ε+t
␈βε␈↓ αH␈ε%0␈ε9∀␈ε+s␈ε%<␈↓ β ␈ε+K␈↓ ∧U␈ε%0␈ε9∀␈ε+s␈ε%,␈ε+t␈ε%<␈↓ ¬B␈ε+K
␈βλ␈↓ ¬H␈ε↓X␈↓ πε␈ε↓X
␈β⊃␈↓ εO␈ε↓∩␈↓ λT␈ε↓∪
␈β"␈↓ πy␈ε+s␈ε%(␈ε+t␈ε%␈α↓+␈↓ λ:␈ε+r␈↓ λH␈ε%)
␈β*␈↓ ∧z␈ε"=␈↓ ε"␈ε(u␈↓ πa␈ε(|␈↓ λt␈ε"=␈↓ 	"␈ε(K␈↓ 	E␈ε(u␈↓ 
}␈ε",
␈β7␈↓ ε6␈ε+t␈↓ 	←␈ε%(␈ε9␈␈↓ 
π␈ε+r␈↓ 
∀␈ε%)␈↓ 
$␈ε%m␈α␈o␈α↓d␈↓ 
a␈ε+K
␈β[␈↓ ¬(␈ε%0␈ε9␈α↓∀␈ε+␈α␈t␈ε%␈α↓<␈↓ ¬}␈ε+K␈↓ εe␈ε%0␈ε9∀␈ε+s␈ε%<␈↓ π>␈ε+K
␈β␈↓ ∧{␈ε↓P
␈β!␈↓ ε5␈ε+s␈↓ εC␈ε+j
␈β'␈↓ ↓H␈ε"since␈α∩the␈α∩geometric␈α∪series␈↓ ε≥␈ε(|␈↓ εd␈ε"sums␈α∩to␈α∪zero␈α∩unless␈↓ 	9␈ε(j␈↓ 	]␈ε"is␈α∩a␈α∩m␈α␈ultiple
␈β9␈↓ ¬!␈ε%0␈ε9∀␈ε+s␈ε%<␈↓ ¬y␈ε+K
␈βR␈↓ ↓H␈ε"of␈↓ ↓v␈ε(K␈↓ α→␈ε".␈α≤Therefore␈α⊂the␈α⊂in␈α␈v␈α␈erse␈α⊂transform␈α⊂can␈α⊂be␈α∂computed␈α⊂in␈α⊂the␈α⊂same␈α⊂w␈α␈a␈α␈y␈α⊂as
␈β}␈↓ ↓H␈ε"the␈α⊂transform␈α⊃itself,␈α⊃except␈α⊃that␈α⊂the␈α⊂|nal␈α⊃results␈α⊂m␈α␈ust␈α⊃be␈α⊂divided␈α⊃by␈↓ 
?␈ε(K␈↓ 
r␈ε"and
␈β
)␈↓ ↓H␈ε"sh␈α␈u␈␈ed␈αsligh␈α␈tly.
␈β
T␈↓ α␈ε"Applying␈α
this␈α
to␈α
the␈α
problem␈α
of␈α
in␈α␈teger␈α
m␈α␈ultiplication,␈α
suppose␈α
w␈α␈e␈α
wish␈αto
␈β
␈␈↓ ↓H␈ε"compute␈αthe␈αproduct␈αof␈αt␈α␈w␈α␈o␈ε(␈αn␈ε"-bit␈αin␈α␈tegers␈ε(␈αu␈ε"␈αand␈↓ πR␈ε(v␈↓ πe␈ε".␈α⊂As␈αin␈αAlgorithm␈αC␈αw␈α␈e␈αshall
␈β∞*␈↓ ↓H␈ε"w␈α␈ork␈αwith␈αgroups␈αof␈αbits;␈αlet
␈β∞w␈↓ ∧↑␈ε+k␈↓ π&␈ε+k␈↓ λs␈ε+l
␈β∞␈␈↓ βl␈ε"2␈ε(n␈ε6␈α
∀␈↓ ∧L␈ε"2␈↓ ∧v␈ε(l␈↓ ¬␈ε"<␈α
4␈ε(n␈ε"␈α␈,␈↓ ε9␈ε(K␈↓ εf␈ε"=␈↓ π∀␈ε"2␈↓ π9␈ε",␈ε(␈↓ λ⊃L␈ε"␈α
=␈↓ λa␈ε"2␈↓ λ}␈ε",␈↓ 
p␈ε"(35)
␈β∂S␈↓ ↓H␈ε"and␈αwrite
␈β∂}␈↓ β(␈ε(u␈ε"␈α
=␈α
(␈↓ ∧↓␈ε(U␈↓ ∧j␈ε".␈αε.␈αε.␈↓ ¬~␈ε(U␈↓ ¬C␈ε(U␈↓ ¬m␈ε")␈↓ ε∞␈ε",␈↓ εf␈ε(v␈↓ πβ␈ε"=␈α
(␈↓ π=␈ε(V␈↓ λ#␈ε".␈αε.␈αε.␈↓ λS␈ε(V␈↓ λz␈ε(V␈↓ 	 ␈ε")␈↓ 	B␈ε",␈↓ 
p␈ε"(36)
␈β⊂␈↓ ∧~␈ε+K␈↓ ∧5␈ε9␈␈ε%1␈↓ ¬3␈ε%1␈↓ ¬\␈ε%0␈↓ ¬y␈ε+L␈↓ πS␈ε+K␈↓ πo␈ε9␈␈ε%␈α␈1␈↓ λi␈ε%1␈↓ 	∂␈ε%0␈↓ 	,␈ε+L
␈β⊂B␈↓ ↓H␈ε"regarding␈ε(␈αu␈ε"␈αand␈↓ βO␈ε(v␈↓ βn␈ε"as␈↓ ∧~␈ε(K␈↓ ∧=␈ε"-place␈αn␈α␈um␈α␈bers␈α
in␈αradix␈ε(␈αL␈ε"␈αso␈αthat␈α
each␈αdigit␈↓ 
β␈ε(U␈↓ 
7␈ε"or␈↓ 
c␈ε(V␈↓ ∀␈ε"is
␈β⊂N␈↓ 
≤␈ε+j␈↓ 
y␈ε+j
␈β⊂m␈↓ ↓H␈ε"an␈↓ ↓y␈ε(l␈↓ α¬␈ε"-bit␈αin␈α␈teger.␈α⊂Actually␈αthe␈αleading␈αdigits␈↓ εx␈ε(U␈↓ π,␈ε"and␈↓ πr␈ε(V␈↓ λ"␈ε"are␈αzero␈αfor␈αall␈↓ 
∩␈ε(j␈↓ 
-␈ε6∃␈↓ 
[␈ε(K␈↓ 
}␈ε"/2,
␈β⊂y␈↓ π⊃␈ε+j␈↓ λπ␈ε+j
␈β⊃∩␈↓ α←␈ε+k␈↓ αp␈ε9␈␈ε%␈α␈1
␈β⊃_␈↓ ↓H␈ε"because␈↓ αM␈ε"2␈↓ β≡␈ε(l␈↓ β6␈ε6∃␈ε(␈αn␈ε".␈α∀W␈α⎇e␈α∞will␈α
select␈α∞appropriate␈α
v␈α}alues␈α∞for␈↓ λk␈ε(k␈↓ 	
␈ε"and␈↓ 	T␈ε(l␈↓ 	m␈ε"later;␈α∞at␈α
the
␈β∪(

␈β↓U␈↓ ↓H␈ε"292␈↓ 
b␈ε"4.3.3
␈β↓\␈↓ α=␈ε∞ARITH␈α↓MET␈α↓IC
␈βα$␈↓ ↓H␈ε"m␈α↓omen␈α␈t␈α
our␈αgoal␈αis␈αto␈αsee␈αwhat␈αhappens␈α
in␈αgeneral,␈αso␈αthat␈αw␈α␈e␈αcan␈αch␈α↓o␈α↓ose␈↓ 
S␈ε(k␈↓ 
r␈ε"and
␈βαO␈↓ ↓H␈ε(l␈↓ ↓←␈ε"in␈α␈telligen␈α␈tly␈αwhen␈αall␈αthe␈αfacts␈αare␈αbefore␈αus.
␈βαz␈↓ α␈ε"The␈α⊃next␈α⊂step␈α⊃of␈α⊂the␈α⊃m␈α␈ultiplication␈α⊃procedure␈α⊂is␈α⊃to␈α⊂compute␈α⊃the␈α⊂F␈α⎇ourier
␈ββ&␈↓ ↓H␈ε"transforms␈α
(␈↓ β	␈ε(u␈↓ β
␈ε"∂␈↓ β/␈ε",␈↓ β?␈ε".␈αε.␈αε.␈↓ βo␈ε",␈↓ β␈␈ε(u␈↓ ∧␈ε"∂␈↓ ∧]␈ε")␈α∞and␈α
(␈↓ ¬J␈ε"∂␈↓ ¬J␈ε(v␈↓ ¬m␈ε",␈↓ ¬⎇␈ε".␈αε.␈αε.␈↓ ε-␈ε",␈↓ ε<␈ε"∂␈↓ ε=␈ε(v␈↓ π_␈ε")␈α∞of␈α
the␈α∞sequences␈α
(␈↓ 	L␈ε(u␈↓ 	r␈ε",␈↓ 
α␈ε".␈αε.␈αε.␈↓ 
2␈ε",␈↓ 
B␈ε(u␈↓  ␈ε")
␈ββ2␈↓ β≡␈ε%0␈↓ ∧∪␈ε+K␈↓ ∧/␈ε9␈␈ε%1␈↓ ¬\␈ε%0␈↓ εN␈ε+K␈↓ εj␈ε9␈␈ε%␈α␈1␈↓ 	a␈ε%0␈↓ 
V␈ε+K␈↓ 
r␈ε9␈␈ε%1
␈ββQ␈↓ ↓H␈ε"and␈α(␈↓ α~␈ε(v␈↓ α<␈ε",␈↓ αL␈ε".␈αε.␈αε.␈↓ α|␈ε",␈↓ β␈ε(v␈↓ βh␈ε"),␈αwhere␈αw␈α␈e␈αde|ne
␈ββ]␈↓ α+␈ε%0␈↓ β≥␈ε+K␈↓ β9␈ε9␈␈ε%1
␈β∧∂␈↓ ¬S␈ε+k␈↓ ¬c␈ε%+␈ε+l␈↓ λ↓␈ε+k␈↓ λ∩␈ε%+␈ε+l
␈β∧↔␈↓ ∧/␈ε(u␈↓ ∧[␈ε"=␈↓ ¬	␈ε(U␈↓ ¬/␈ε"/␈↓ ¬A␈ε"2␈↓ ε␈ε",␈↓ εd␈ε(v␈↓ π
␈ε"=␈↓ π;␈ε(V␈↓ π]␈ε"/␈↓ πo␈ε"2␈↓ λ;␈ε".␈↓ 
p␈ε"(37)
␈β∧$␈↓ ∧D␈ε+t␈↓ ¬"␈ε+t␈↓ εv␈ε+t␈↓ πP␈ε+t
␈β∧↑␈↓ ↓H␈ε"This␈αscaling␈αis␈αdone␈αfor␈αcon␈α␈v␈α␈enience␈αso␈αthat␈αthe␈αabsolute␈αv␈α}alues␈ε6␈αj␈↓ 	A␈ε(u␈↓ 	b␈ε6j␈ε"␈αand␈ε6␈αj␈↓ 
H␈ε(v␈↓ 
g␈ε6j␈ε"␈αare
␈β∧j␈↓ 	U␈ε+t␈↓ 
Z␈ε+t
␈β¬β␈↓ αp␈ε9␈␈↓ β
␈ε+k
␈β¬	␈↓ ↓H␈ε"less␈αthan␈↓ α↑␈ε"2␈↓ β∨␈ε",␈αensuring␈αthat␈ε6␈αj␈↓ ¬≥␈ε(u␈↓ ¬∨␈ε"∂␈↓ ¬B␈ε6j␈ε"␈αand␈ε6␈αj␈↓ ε(␈ε"∂␈↓ ε(␈ε(v␈↓ εI␈ε6j␈ε"␈αwill␈αbe␈αless␈αthan␈α1␈αfor␈αall␈ε(␈αs␈ε".
␈β¬∃␈↓ ¬2␈ε+s␈↓ ε9␈ε+s
␈β¬4␈↓ α␈ε"An␈α
obvious␈α
problem␈α
arises␈α
here,␈α
since␈α
the␈α
complex␈α
n␈α␈um␈α␈ber␈↓ 	>␈ε(|␈↓ 	c␈ε"can't␈α
be␈αrep-
␈β¬←␈↓ ↓H␈ε"resen␈α␈ted␈α∂exactly␈α⊂in␈α∂binary␈α⊂n␈α↓otation.␈α~Ho␈α␈w␈α⊂are␈α∂w␈α␈e␈α∂going␈α⊂to␈α∂compute␈α⊂a␈α∂reliable
␈βε␈↓ ↓H␈ε"F␈α⎇ourier␈α∞transform?␈α∃By␈α∞a␈α∞strok␈α␈e␈α∞of␈α∞go␈α↓od␈α∞luck,␈α∂it␈α∞turns␈α∞out␈α∞that␈α
ev␈α␈erything␈α∞will
␈βε6␈↓ ↓H␈ε"w␈α␈ork␈αproperly␈αif␈αw␈α␈e␈αdo␈αthe␈αcalculations␈αwith␈αonly␈αa␈αm␈α↓odest␈αam␈α↓oun␈α␈t␈αof␈αprecision.
␈βεa␈↓ ↓H␈ε"F␈α⎇or␈α∞the␈α∂m␈α↓omen␈α␈t␈α∞let␈α∞us␈α∂bypass␈α∞this␈α∂question␈α∞and␈α∂assume␈α∞that␈α∞in|nite-precision
␈βπ␈↓ ↓H␈ε"calculations␈α∞are␈α∞being␈α∞performed;␈α∂w␈α␈e␈α∞shall␈α∞analyze␈α∞later␈α
h␈α↓o␈α␈w␈α∞m␈α␈uch␈α∞accuracy␈α∞is
␈βπ7␈↓ ↓H␈ε"actually␈αneeded.
␈βπc␈↓ α␈ε"Once␈αthe␈↓ β%␈ε(u␈↓ β'␈ε"∂␈↓ βV␈ε"and␈↓ ∧≠␈ε"∂␈↓ ∧≠␈ε(v␈↓ ∧H␈ε"ha␈α␈v␈α␈e␈αbeen␈αfound,␈αw␈α␈e␈αlet␈↓ πG␈ε(w␈↓ πK␈ε"∂␈↓ πz␈ε"=␈↓ λ(␈ε(u␈↓ λ)␈ε"∂␈↓ λL␈ε"∂␈↓ λL␈ε(v␈↓ λy␈ε"for␈α0␈ε6␈α
∀␈ε(␈α
s␈ε"␈α
<␈↓ 
D␈ε(K␈↓ 
r␈ε"and
␈βπo␈↓ β:␈ε+s␈↓ ∧-␈ε+s␈↓ π`␈ε+s␈↓ λ=␈ε+s␈↓ λ↑␈ε+s
␈βλ∞␈↓ ↓H␈ε"determine␈α∞the␈α∂in␈α␈v␈α␈erse␈α∂F␈α⎇ourier␈α∂transform␈α∂(␈↓ εb␈ε(w␈↓ π␈ε",␈↓ π≤␈ε".␈αε.␈αε.␈↓ πL␈ε",␈↓ π\␈ε(w␈↓ λ?␈ε").␈α→As␈α∂explained␈α∞abo␈α␈v␈α␈e,
␈βλ~␈↓ ε{␈ε%0␈↓ πu␈ε+K␈↓ λ⊃␈ε9␈␈ε%1
␈βλ9␈↓ ↓H␈ε"w␈α␈e␈αn␈α↓o␈α␈w␈αha␈α␈v␈α␈e
␈βλB␈↓ ∧t␈ε↓X␈↓ εW␈ε↓X
␈βλ\␈↓ λ⊗␈ε%2␈↓ λ%␈ε+k␈↓ λ6␈ε%+2␈ε+l
␈βλd␈↓ β|␈ε(w␈↓ ∧/␈ε"=␈↓ ¬F␈ε(u␈↓ ¬g␈ε(v␈↓ ε⊃␈ε"=␈↓ π(␈ε(U␈↓ πM␈ε(V␈↓ πr␈ε"/␈↓ λ∧␈ε"2␈↓ λn␈ε",
␈βλq␈↓ ∧⊗␈ε+r␈↓ ¬[␈ε+i␈↓ ¬x␈ε+j␈↓ πA␈ε+i␈↓ πc␈ε+j
␈β	∃␈↓ ∧]␈ε+i␈ε%+␈↓ ¬¬␈ε+j␈↓ ¬∪␈ε%=␈↓ ¬0␈ε+r␈↓ ε?␈ε+i␈ε%+␈↓ εh␈ε+j␈↓ εu␈ε%=␈↓ π∪␈ε+r
␈β	D␈↓ ∧/␈ε%2␈↓ ∧>␈ε+k␈↓ ∧O␈ε%+␈α␈2␈ε+l
␈β	J␈↓ ↓H␈ε"so␈αthe␈αin␈α␈tegers␈↓ β7␈ε(W␈↓ βo␈ε"=␈↓ ∧≥␈ε"2␈↓ ¬π␈ε(w␈↓ ¬;␈ε"are␈αthe␈αcoe}cien␈α␈ts␈αin␈αthe␈αdesired␈αproduct
␈β	W␈↓ βU␈ε+r␈↓ ¬ ␈ε+r
␈β
	␈↓ ¬q␈ε+K␈↓ ε
␈ε9␈␈ε%␈α␈2
␈β
⊃␈↓ βr␈ε(u␈ε6␈αλ↓␈↓ ∧!␈ε(v␈↓ ∧=␈ε"=␈↓ ∧k␈ε(W␈↓ ¬Y␈ε(L␈↓ εC␈ε"+␈↓ εo␈ε6↓␈αε↓␈αε↓␈↓ π!␈ε"+␈↓ πM␈ε(W␈↓ π⎇␈ε(L␈ε"␈αλ+␈↓ λI␈ε(W␈↓ λx␈ε".␈↓ 
p␈ε"(38)
␈β
≥␈↓ ¬
␈ε+K␈↓ ¬&␈ε9␈␈ε%␈α␈2␈↓ πl␈ε%1␈↓ λg␈ε%0
␈β
Q␈↓ ∧`␈ε%2␈↓ ¬f␈ε%2
␈β
W␈↓ ↓H␈ε"Since␈α0␈ε6␈α∀␈↓ αr␈ε(W␈↓ β*␈ε"<␈α(␈↓ βe␈ε(r␈↓ β}␈ε"+␈αλ1)␈↓ ∧H␈ε(L␈↓ ∧|␈ε"<␈↓ ¬+␈ε(K␈↓ ¬N␈ε(L␈↓ ¬v␈ε",␈α
each␈↓ ε←␈ε(W␈↓ π~␈ε"has␈αat␈α
m␈α↓ost␈↓ λ`␈ε(k␈↓ λ⎇␈ε"+␈αλ2␈↓ 	;␈ε(l␈↓ 	S␈ε"bits,␈α
so␈αit␈αwill
␈β
d␈↓ β⊂␈ε+r␈↓ ε}␈ε+r
␈βα␈↓ ↓H␈ε"n␈α↓ot␈α
be␈α
di}cult␈α∞to␈α
compute␈α
the␈α∞binary␈α
represen␈α␈tation␈α
when␈α∞the␈↓ 	>␈ε(W␈↓ 	b␈ε"'s␈α
are␈α
kn␈α↓o␈α␈wn
␈β.␈↓ ↓H␈ε"unless␈↓ α2␈ε(k␈↓ αR␈ε"is␈αlarge␈αcompared␈αto␈↓ ¬≡␈ε(l␈↓ ¬)␈ε".
␈βY␈↓ α␈ε"Let␈α⊂us␈α⊃try␈α⊂to␈α⊂estimate␈α⊂h␈α↓o␈α␈w␈α⊃m␈α␈uch␈α⊂time␈α⊂this␈α⊃meth␈α↓od␈α⊂tak␈α␈es,␈α⊃if␈ε(␈α⊂m␈ε"-bit␈↓ 
`␈ε"|xed
␈β∧␈↓ ↓H␈ε"poin␈α␈t␈α
arithmetic␈α
is␈α
used␈α
in␈α
calculating␈α
the␈αF␈α⎇ourier␈α
transforms.␈α∂Exercise␈α
10␈α
sh␈α↓o␈α␈ws
␈β)␈↓ ∧m␈ε%[␈↓ ∧v␈ε+j␈↓ ¬∧␈ε%]
␈β/␈↓ ↓H␈ε"that␈αall␈αof␈αthe␈αquan␈α␈tities␈↓ ∧S␈ε(A␈↓ ¬~␈ε"during␈αall␈αthe␈αpasses␈αof␈αthe␈αtransform␈αcalculations
␈βZ␈↓ ↓H␈ε"will␈αbe␈α
less␈α
than␈α1␈α
in␈α
magnitude␈α
because␈αof␈α
the␈α
scaling␈α(37),␈α
hence␈α
it␈α
su}ces␈αto
␈β
ε␈↓ ↓H␈ε"deal␈αwith␈ε(␈αm␈ε"-bit␈αfractions␈α(.␈↓ ∧p␈ε(a␈↓ ¬7␈ε".␈αε.␈αε.␈↓ ¬g␈ε(a␈↓ ε4␈ε")␈↓ ε\␈ε"for␈αthe␈αreal␈αand␈αimaginary␈αparts␈αof␈αall
␈β
∩␈↓ ¬β␈ε9␈␈ε%␈α␈1␈↓ ¬z␈ε9␈␈ε+m␈↓ ε@␈ε%2
␈β
1␈↓ ↓H␈ε"the␈α∞in␈α␈termediate␈α∂quan␈α␈tities.␈α_Simpli|cations␈α∞are␈α∂possible␈α∂because␈α∞the␈α∂inputs␈↓ ␈ε(u
␈β
=␈↓ ∨␈ε+t
␈β
\␈↓ ↓H␈ε"and␈↓ α∂␈ε(v␈↓ α<␈ε"are␈α
real-v␈α}alued;␈α∂only␈↓ ¬∞␈ε(K␈↓ ¬?␈ε"real␈α
v␈α}alues␈α∞instead␈α∞of␈α∞2␈↓ λ/␈ε(K␈↓ λ←␈ε"need␈α∞to␈α∞be␈α∞carried␈α
in
␈β
h␈↓ α!␈ε+t
␈β∞π␈↓ ↓H␈ε"each␈α∂step␈α∂(see␈α∂exercise␈α⊂4.6.4↑14).␈α~W␈α⎇e␈α∂will␈α∂ign␈α↓ore␈α∂such␈α⊂re|nemen␈α␈ts␈α∂in␈α∂order␈α∂to
␈β∞2␈↓ ↓H␈ε"k␈α␈eep␈αcomplications␈αto␈αa␈αminim␈α␈um.
␈β∞↑␈↓ α␈ε"The␈α
|rst␈αjob␈α
is␈α
to␈α
compute␈↓ ¬D␈ε(|␈↓ ¬i␈ε"and␈α
its␈αpo␈α␈w␈α␈ers.␈α∪F␈α⎇or␈αsimplicit␈α␈y␈α
w␈α␈e␈α
shall␈αmak␈α␈e
␈β∂β␈↓ ∧+␈ε%0␈↓ ¬/␈ε+K␈↓ ¬K␈ε9␈␈ε%1
␈β∂	␈↓ ↓H␈ε"a␈αtable␈αof␈αthe␈αv␈α}alues␈↓ ∧∪␈ε(|␈↓ ∧;␈ε",␈↓ ∧Q␈ε".␈αε.␈αε.␈↓ ¬↓␈ε",␈↓ ¬↔␈ε(|␈↓ ¬y␈ε".␈α⊂Let
␈β∂G␈↓ π%␈ε+r
␈β∂O␈↓ ¬*␈ε(|␈↓ ¬Z␈ε"=␈↓ ελ␈ε"e␈↓ ε_␈ε"x␈↓ ε,␈ε"p␈↓ ε@␈ε"(2␈↓ ε↑␈ε(→␈↓ εt␈ε(i␈ε"␈α↓/␈↓ π∪␈ε"2␈↓ π4␈ε"),
␈β∂\␈↓ ¬A␈ε+r
␈β⊂⊃␈↓ εI␈ε6p
␈β⊂∀␈↓ εg␈∧⊂∀εgα∩
␈β⊂⊗␈↓ ↓H␈ε"so␈αthat␈↓ αA␈ε(|␈↓ αs␈ε"=␈ε6␈α
␈␈ε"1,␈↓ βm␈ε(|␈↓ ∧≡␈ε"=␈ε(␈α
i␈ε",␈↓ ∧n␈ε(|␈↓ ¬∨␈ε"=␈α
(1␈αλ+␈ε(␈αλi␈ε")/␈↓ εg␈ε"2␈↓ εy␈ε",␈↓ π∂␈ε".␈αε.␈αε.␈↓ π?␈ε",␈↓ πU␈ε(|␈↓ λλ␈ε"=␈↓ λ6␈ε(|␈↓ λN␈ε".␈α⊂If␈↓ 	␈ε(|␈↓ 	;␈ε"=␈↓ 	i␈ε(x␈↓ 
∀␈ε"+␈ε(␈αλi␈↓ 
M␈ε(y␈↓ 
n␈ε",␈αw␈α␈e
␈β⊂"␈↓ αX␈ε%1␈↓ ∧β␈ε%2␈↓ ¬¬␈ε%3␈↓ πl␈ε+k␈↓ 	"␈ε+r␈↓ 	⎇␈ε+r␈↓ 
↑␈ε+r
␈β⊂A␈↓ ↓H␈ε"ha␈α␈v␈α␈e
␈β⊂c␈↓ ¬E␈ε↓r
␈β⊂d␈↓ π≠␈ε↓r
␈β⊂f␈↓ ¬i␈∧⊂f¬iαr
␈β⊂g␈↓ π?␈∧⊂gπ?αr
␈β⊂k␈↓ ¬m␈ε"1␈αλ+␈↓ ε3␈ε(x␈↓ πC␈ε"1␈ε6␈αλ␈␈↓ λ	␈ε(x
␈β⊂w␈↓ εG␈ε+r␈↓ λ≥␈ε+r
␈β⊃β␈↓ ∧:␈ε(|␈↓ ¬↔␈ε"=␈↓ εb␈ε"+␈ε(␈αλi␈↓ λ0␈ε".␈↓ 
p␈ε"(39)
␈β⊃∂␈↓ ∧Q␈ε+r␈↓ ∧↑␈ε%+1
␈β⊃↔␈↓ ¬m␈∧⊃↔¬mαj␈↓ πC␈∧⊃↔πCαj
␈β⊃≤␈↓ ε_␈ε"2␈↓ πn␈ε"2
␈β∪(

␈β↓U␈↓ ↓H␈ε"4.3.3␈↓ 
)␈ε"?␈↓ 
v␈ε"293
␈β↓\␈↓ εF␈ε∞H␈α↓O␈α␈W␈α
F␈α|AST␈α
CA␈α↓N␈α	W␈α↓E␈α
MUL␈α}TI␈α↓P␈α␈L␈α}Y
␈βα$␈↓ ↓H␈ε"The␈α
calculation␈αof␈↓ βn␈ε(|␈↓ ∧∃␈ε",␈↓ ∧*␈ε(|␈↓ ∧Q␈ε",␈↓ ∧g␈ε".␈αε.␈αε.␈↓ ¬↔␈ε",␈↓ ¬,␈ε(|␈↓ ¬←␈ε"tak␈α␈es␈αnegligible␈α
time␈αcompared␈αwith␈αthe␈α
other
␈βα0␈↓ ∧∧␈ε%1␈↓ ∧A␈ε%2␈↓ ¬B␈ε+k
␈βαO␈↓ ↓H␈ε"computations␈α
w␈α␈e␈α
need,␈α∞so␈α
w␈α␈e␈α∞can␈α
use␈α
an␈α␈y␈α
straigh␈α␈tforw␈α␈ard␈α∞algorithm␈α
for␈α
square
␈βαt␈↓ ≥␈ε+j
␈βαz␈↓ ↓H␈ε"ro␈α↓ots.␈α∃Once␈α∞the␈↓ βT␈ε(|␈↓ ∧λ␈ε"ha␈α␈v␈α␈e␈α∞been␈α∞calculated␈α∞w␈α␈e␈α∞can␈α∞compute␈α∞all␈α∞of␈α∞the␈α
po␈α␈w␈α␈ers␈↓ ¬␈ε(|
␈ββπ␈↓ βk␈ε+r
␈ββ ␈↓ βi␈ε%0␈↓ 
9␈ε+K␈↓ 
U␈ε9␈␈↓ 
r␈ε+r
␈ββ&␈↓ ↓H␈ε"by␈αstarting␈αwith␈↓ βQ␈ε(|␈↓ ∧β␈ε"=␈α
1␈αand␈αusing␈αthe␈αfollo␈α␈wing␈αidea␈αfor␈↓ λJ␈ε(j␈↓ λe␈ε">␈α
0:␈αIf␈↓ 	↑␈ε(j␈↓ 	y␈ε"=␈↓ 
'␈ε"2␈↓ 	␈ε6↓␈↓ →␈ε(q
␈ββK␈↓ ¬∪␈ε+K␈↓ ¬.␈ε9␈␈↓ ¬L␈ε+r
␈ββQ␈↓ ↓H␈ε"where␈↓ α0␈ε(q␈↓ αO␈ε"is␈αodd,␈αand␈αif␈↓ ∧+␈ε(j␈↓ ∧S␈ε"=␈↓ ¬↓␈ε"2␈↓ ¬c␈ε6↓␈ε"␈αλ(␈↓ ε↓␈ε(q␈↓ ε≤␈ε6␈␈ε"␈αλ1),␈αw␈α␈e␈αha␈α␈v␈α␈e
␈ββ]␈↓ ∧8␈ε%0
␈β∧ ␈↓ ¬d␈ε+j␈↓ εC␈ε+j
␈β∧'␈↓ ¬L␈ε(|␈↓ ¬⎇␈ε"=␈↓ ε+␈ε(|␈↓ εf␈ε6↓␈↓ εx␈ε(|␈↓ π≡␈ε".␈↓ 
p␈ε"(40)
␈β∧)␈↓ εN␈ε'0
␈β∧4␈↓ π∂␈ε+r
␈β∧x␈↓ 
T␈ε+j
␈β∧}␈↓ ↓H␈ε"This␈α∂meth␈α↓od␈α⊂of␈α⊂calculation␈α⊂k␈α␈eeps␈α∂errors␈α⊂from␈α⊂propagating,␈α⊂since␈α⊂each␈↓ 
<␈ε(|␈↓ 
s␈ε"is␈α∂a
␈β¬#␈↓ 
t␈ε+j
␈β¬)␈↓ ↓H␈ε"product␈α⊃of␈α⊃at␈α∩m␈α↓ost␈↓ ∧∩␈ε(k␈↓ ∧8␈ε"of␈α⊃the␈↓ ¬*␈ε(|␈↓ ¬P␈ε"'s.␈α The␈α∩total␈α⊃time␈α∩to␈α⊃calculate␈α⊃all␈α∩the␈↓ 
\␈ε(|␈↓ ∀␈ε"is
␈β¬6␈↓ ¬A␈ε+r
␈β¬T␈↓ ↓H␈ε(O␈↓ ↓d␈ε"(␈↓ ↓p␈ε(K␈↓ α∪␈ε(M␈↓ α<␈ε"),␈αwhere␈↓ βC␈ε(M␈↓ βv␈ε"is␈αthe␈α
time␈αto␈α
do␈α
an␈ε(␈αm␈ε"-bit␈α
complex␈αm␈α␈ultiplication;␈αthis␈α
is␈α
less
␈βε␈↓ ↓H␈ε"time␈αthan␈αthe␈αsubsequen␈α␈t␈αsteps␈αwill␈αrequire,␈αso␈αw␈α␈e␈αcan␈αign␈α↓ore␈αit.
␈βε+␈↓ α␈ε"Each␈α
of␈αthe␈α
three␈αF␈α⎇ourier␈α
transformations␈αcomprises␈↓ λD␈ε(k␈↓ λc␈ε"passes,␈αeach␈α
of␈α
which
␈βεP␈↓ π$␈ε+j
␈βεV␈↓ ↓H␈ε"in␈α␈v␈α␈olv␈α␈es␈↓ αQ␈ε(K␈↓ β↓␈ε"operations␈α∞of␈α∞the␈α∞form␈ε(␈α∞a␈ε6␈α
␈ ␈ε(␈α
b␈ε"␈α
+␈↓ π␈ε(|␈↓ π3␈ε(c␈ε"␈α↓,␈α∞so␈α∞the␈α∞total␈α∞time␈α∞to␈α
calculate
␈βπ↓␈↓ ↓H␈ε"the␈αF␈α⎇ourier␈αtransforms␈αis
␈βπX␈↓ ∧⎇␈ε(O␈↓ ¬→␈ε"(␈↓ ¬%␈ε(k␈↓ ¬9␈ε(K␈↓ ¬\␈ε(M␈↓ ε¬␈ε")␈α
=␈↓ εI␈ε(O␈↓ εe␈ε"(␈↓ εq␈ε(M␈↓ π~␈ε(n␈↓ π0␈ε(k␈↓ πD␈ε"/␈↓ πV␈ε(l␈↓ πa␈ε").
␈βλ/␈↓ ↓H␈ε"Finally,␈α∞the␈α∞w␈α␈ork␈α
in␈α␈v␈α␈olv␈α␈ed␈α∞in␈α∞computing␈α
the␈α∞binary␈α∞digits␈α∞of␈ε(␈α
u␈ε6␈α	↓␈↓ 	J␈ε(v␈↓ 	k␈ε"using␈α∞(38)␈α
is
␈βλ;␈↓ ↓d␈ε↓␈␈↓ β¬␈ε↓↓
␈βλZ␈↓ ↓H␈ε(O␈↓ ↓r␈ε(K␈↓ α∃␈ε"(␈↓ α!␈ε(k␈↓ α?␈ε"+␈↓ αm␈ε(l␈↓ αy␈ε")␈↓ β"␈ε"=␈↓ βU␈ε(O␈↓ βr␈ε"(␈ε(n␈ε"␈α	+␈ε(␈α
n␈↓ ∧a␈ε(k␈↓ ∧u␈ε"/␈↓ ¬π␈ε(l␈↓ ¬∪␈ε").␈α→Summing␈α∂o␈α␈v␈α␈er␈α∂all␈α∂operations,␈α⊂w␈α␈e␈α∂|nd␈α∂that␈α∂the
␈β	¬␈↓ ↓H␈ε"total␈αtime␈αto␈αm␈α␈ultiply␈ε(␈αn␈ε"␈α␈-bit␈αn␈α␈um␈α␈bers␈ε(␈αu␈ε"␈αand␈↓ ε|␈ε(v␈↓ π≠␈ε"will␈αbe␈↓ λ∂␈ε(O␈↓ λ,␈ε"(␈ε(n␈ε"␈α␈)␈αλ+␈↓ 	
␈ε(O␈↓ 	*␈ε"(␈↓ 	6␈ε(M␈↓ 	←␈ε(n␈↓ 	t␈ε(k␈↓ 
λ␈ε"/␈↓ 
~␈ε(l␈↓ 
&␈ε").
␈β	0␈↓ α␈ε"No␈α␈w␈α∞let's␈α∞see␈α∂h␈α↓o␈α␈w␈α∞large␈α∞the␈α∞in␈α␈termediate␈α∞precision␈ε(␈α∞m␈ε"␈α∞needs␈α∞to␈α∂be,␈α∞so␈α∞that
␈β	[␈↓ ↓H␈ε"w␈α␈e␈α⊂kn␈α↓o␈α␈w␈α⊃h␈α↓o␈α␈w␈α⊂large␈↓ ∧∩␈ε(M␈↓ ∧L␈ε"needs␈α⊂to␈α⊂be.␈α≡F␈α⎇or␈α⊂simplicit␈α␈y␈α⊃w␈α␈e␈α⊂shall␈α⊃be␈α⊂con␈α␈ten␈α␈t␈α⊂with
␈β
π␈↓ ↓H␈ε"safe␈α∞estimates␈α∂of␈α∂the␈α∞accuracy,␈α⊂instead␈α∞of␈α∂|nding␈α∂the␈α∞best␈α∂possible␈α∞bounds.␈α_It
␈β
,␈↓ ε@␈ε+j␈↓ 
B␈ε+j␈↓ 
]␈ε90
␈β
2␈↓ ↓H␈ε"will␈α
be␈α∞con␈α␈v␈α␈enien␈α␈t␈α∞to␈α∞compute␈α∞all␈α∞the␈↓ ε)␈ε(|␈↓ ε↑␈ε"so␈α
that␈α∞our␈α∞appro␈α␈ximations␈α∞(␈↓ 
*␈ε(|␈↓ 
Q␈ε")␈↓ 
t␈ε"will
␈β
W␈↓ αj␈ε+j␈↓ β¬␈ε90
␈β
]␈↓ ↓H␈ε"satisfy␈ε6␈α∂j␈ε"(␈↓ αR␈ε(|␈↓ αy␈ε")␈↓ β∞␈ε6j␈α⊂∀␈ε"␈α∂1;␈α⊂this␈α⊂condition␈α∂is␈α∂easy␈α∂to␈α∂guaran␈α␈tee␈α∂if␈α∂w␈α␈e␈↓ 	∨␈ε"truncate␈α∂to␈α␈w␈α␈ards
␈βλ␈↓ ↓H␈ε"zero␈α
instead␈α∞of␈α
rounding.␈α∃The␈α∞operations␈α
w␈α␈e␈α∞need␈α
to␈α∞perform␈α∞with␈ε(␈α
m␈ε"-bit␈α
|xed
␈β3␈↓ ↓H␈ε"poin␈α␈t␈αcomplex␈αarithmetic␈αare␈αall␈αobtained␈αby␈αreplacing␈αan␈αexact␈αcomputation␈αof
␈βY␈↓ ∧α␈ε+j
␈β←␈↓ ↓H␈ε"the␈αform␈ε(␈αa␈ε6␈α
␈ ␈ε(␈α
b␈ε"␈αλ+␈↓ βj␈ε(|␈↓ ∧⊃␈ε(c␈ε"␈αby␈αthe␈αappro␈α␈ximate␈αcomputation
␈β↔␈↓ ε<␈ε↓␈␈↓ πy␈ε↓↓
␈β-␈↓ ∧w␈ε90␈↓ εY␈ε90␈↓ π;␈ε+j␈↓ πV␈ε90␈↓ πo␈ε90
␈β5␈↓ ∧d␈ε(a␈↓ ¬
␈ε6␈ ␈↓ ¬8␈ε"truncate␈↓ εJ␈ε(b␈↓ εk␈ε"+␈αλ(␈↓ π#␈ε(|␈↓ πJ␈ε")␈↓ π`␈ε(c␈↓ λπ␈ε",␈↓ 
p␈ε"(41)
␈β
ε␈↓ αD␈ε90␈↓ β∂␈ε+j␈↓ β*␈ε90␈↓ ∧+␈ε90
␈β
␈↓ ↓H␈ε"where␈↓ α5␈ε(b␈↓ αN␈ε",␈α∪(␈↓ αw␈ε(|␈↓ β≡␈ε")␈↓ β3␈ε",␈α∪and␈↓ ∧≤␈ε(c␈↓ ∧F␈ε"are␈α⊃previously␈α∩computed␈α⊃appro␈α␈ximations;␈α∃all␈α⊃of␈α⊃these
␈β
7␈↓ ↓H␈ε"complex␈αn␈α␈um␈α␈bers␈αand␈αtheir␈αappro␈α␈ximations␈αare␈αbounded␈αby␈α1␈αin␈αabsolute␈αv␈α}alue.
␈β
\␈↓ α∧␈ε90␈↓ βp␈ε+j␈↓ ∧␈ε90␈↓ ∧\␈ε+j␈↓ ε@␈ε90
␈β
b␈↓ ↓H␈ε"If␈ε6␈α
j␈↓ ↓t␈ε(b␈↓ α∪␈ε6␈␈ε(␈α¬b␈ε6␈α↓j␈α
∀␈↓ β∞␈ε(∞␈↓ β-␈ε",␈ε6␈αj␈ε"(␈↓ βX␈ε(|␈↓ β␈␈ε")␈↓ ∧≠␈ε6␈␈↓ ∧D␈ε(|␈↓ ∧k␈ε6j␈α
∀␈↓ ¬-␈ε(∞␈↓ ¬M␈ε",␈αand␈ε6␈αj␈↓ ε1␈ε(c␈↓ εO␈ε6␈␈ε(␈αεc␈ε6j␈α
∀␈↓ πJ␈ε(∞␈↓ πj␈ε",␈αit␈αis␈α
n␈α↓ot␈αdi}cult␈αto␈αsee␈α
that
␈β
o␈↓ β≥␈ε%1␈↓ ¬<␈ε%2␈↓ πY␈ε%3
␈β∞π␈↓ β1␈ε90
␈β∞
␈↓ ↓H␈ε"w␈α␈e␈αwill␈αha␈α␈v␈α␈e␈ε6␈αj␈↓ β≡␈ε(a␈↓ βB␈ε6␈␈ε(␈αλa␈ε6j␈ε"␈α
<␈↓ ∧C␈ε(∞␈↓ ∧↑␈ε"+␈↓ ¬
␈ε(∞␈↓ ¬1␈ε"+␈↓ ¬]␈ε(∞␈↓ ε¬␈ε"+␈↓ ε1␈ε(∞␈↓ εQ␈ε",␈αwhere
␈β∞~␈↓ ¬→␈ε%1␈↓ ¬l␈ε%2␈↓ ε@␈ε%3
␈β∞\␈↓ ¬$␈ε9␈␈ε+m␈↓ ε$␈ε9␈␈ε+m␈↓ πE␈ε%1/2␈ε9␈␈ε+m
␈β∞d␈↓ ∧>␈ε(∞␈↓ ∧Z␈ε"=␈ε6␈α
j␈↓ ¬∩␈ε"2␈↓ ¬f␈ε"+␈↓ ε∩␈ε"2␈↓ εd␈ε(i␈ε6␈α↓j␈ε"␈α
=␈↓ π3␈ε"2␈↓ λ,␈ε",
␈β∂≤␈↓ βT␈ε↓␈␈↓ ¬,␈ε↓␈␈↓ ¬p␈ε↓␈␈↓ ¬|␈ε↓␈␈↓ π.␈ε↓↓␈↓ 	$␈ε↓␈
␈β∂2␈↓ βT␈ε↓␈␈↓ ¬,␈ε↓␈␈↓ ¬p␈ε↓␈␈↓ 	$␈ε↓␈
␈β∂5␈↓ ∧∧␈ε+j␈↓ ∧∨␈ε90␈↓ ∧8␈ε90␈↓ ¬
␈ε+j␈↓ ε.␈ε+j␈↓ εI␈ε90␈↓ π∨␈ε+j␈↓ πK␈ε90␈↓ λ!␈ε+j␈↓ λK␈ε90
␈β∂;␈↓ ↓H␈ε"because␈αw␈α␈e␈αha␈α␈v␈α␈e␈↓ β`␈ε"(␈↓ βl␈ε(|␈↓ ∧∪␈ε")␈↓ ∧)␈ε(c␈↓ ∧J␈ε6␈␈↓ ∧v␈ε(|␈↓ ¬≥␈ε(c␈↓ ¬B␈ε"=␈↓ ε
␈ε"(␈↓ ε⊗␈ε(|␈↓ ε=␈ε")␈↓ ε[␈ε6␈␈↓ ππ␈ε(|␈↓ π<␈ε(c␈↓ π]␈ε"+␈↓ λ	␈ε(|␈↓ λ0␈ε"(␈↓ λ<␈ε(c␈↓ λ]␈ε6␈␈ε(␈αλc␈ε")␈↓ 	:␈ε6∀␈↓ 	i␈ε(∞␈↓ 
⊂␈ε"+␈↓ 
<␈ε(∞␈↓ 
\␈ε",␈αand
␈β∂G␈↓ 	x␈ε%2␈↓ 
K␈ε%3
␈β∂`␈↓ 	↓␈ε+j␈↓ 	≤␈ε90
␈β∂f␈↓ ↓H␈ε(∞␈↓ ↓g␈ε"is␈α∞the␈α
maxim␈α␈um␈α
truncation␈α
error.␈α∀The␈α∞appro␈α␈ximations␈α
(␈↓ λi␈ε(|␈↓ 	⊂␈ε")␈↓ 	3␈ε"are␈α
obtained␈α
by
␈β⊂␈↓ ¬p␈ε90
␈β⊂⊃␈↓ ↓H␈ε"starting␈αwith␈αappro␈α␈ximate␈αv␈α}alues␈↓ ¬X␈ε(|␈↓ ε¬␈ε"to␈αthe␈αn␈α␈um␈α␈bers␈αde|ned␈αin␈α(39),␈αand␈αw␈α␈e␈αma␈α␈y
␈β⊂"␈↓ ¬k␈ε+r
␈β⊂6␈↓ β5␈ε90
␈β⊂<␈↓ ↓H␈ε"assume␈α
that␈ε6␈α
j␈↓ β≡␈ε(|␈↓ βI␈ε6␈␈↓ βu␈ε(|␈↓ ∧≠␈ε6j␈α∀␈↓ ∧`␈ε(∞␈↓ ∧s␈ε".␈α∪Each␈α
m␈α␈ultiplication␈α
(40)␈α
has␈α
the␈α
form␈α
of␈α(41)␈α
with
␈β⊂I␈↓ ∧␈ε+r
␈β⊂M␈↓ β1␈ε+r
␈β⊂a␈↓ ↓W␈ε90
␈β⊂g␈↓ ↓H␈ε(b␈↓ ↓k␈ε"=␈α0,␈α
so␈α
an␈αadditional␈α
error␈α
of␈αat␈α
m␈α↓ost␈α2␈↓ εh␈ε(∞␈↓ ππ␈ε"is␈α
made␈α
per␈αm␈α␈ultiplication,␈α
and␈αw␈α␈e
␈β⊂t␈↓ α≠␈ε↓␈␈↓ βJ␈ε↓␈
␈β⊃
␈↓ α≠␈ε↓␈␈↓ βJ␈ε↓␈
␈β⊃
␈↓ αK␈ε+j␈↓ αf␈ε90␈↓ β;␈ε+j
␈β⊃∪␈↓ ↓H␈ε"ha␈α␈v␈α␈e␈↓ α'␈ε"(␈↓ α3␈ε(|␈↓ αZ␈ε")␈↓ αw␈ε6␈␈↓ β#␈ε(|␈↓ β`␈ε6∀␈ε"␈α
(2␈↓ ∧,␈ε(k␈↓ ∧I␈ε6␈␈ε"␈αλ1)␈↓ ¬∪␈ε(∞␈↓ ¬1␈ε"for␈αall␈↓ ε≠␈ε(j␈↓ ε,␈ε".
␈β∪(

␈β↓U␈↓ ↓H␈ε"294␈↓ 
b␈ε"4.3.3
␈β↓\␈↓ α=␈ε∞ARITH␈α↓MET␈α↓IC
␈βα$␈↓ α␈ε"If␈αw␈α␈e␈αha␈α␈v␈α␈e␈αerrors␈αof␈αat␈αm␈α↓ost␈ε(␈α∂␈ε"␈αbefore␈αan␈α␈y␈αpass␈αof␈αthe␈αfast␈αF␈α⎇ourier␈αtransform,
␈βαO␈↓ ↓H␈ε"the␈αoperations␈αof␈αthat␈αpass␈αtherefore␈αha␈α␈v␈α␈e␈αthe␈αform␈α(41)␈αwhere␈↓ 	(␈ε(∞␈↓ 	R␈ε"=␈↓ 
␈ε(∞␈↓ 
*␈ε"=␈ε(␈α
∂␈ε"␈αand
␈βα\␈↓ 	7␈ε%1␈↓ 
∂␈ε%3
␈βαz␈↓ ↓H␈ε(∞␈↓ ↓q␈ε"=␈α
(2␈↓ α=␈ε(k␈↓ αX␈ε6␈␈ε"␈απ1)␈↓ β!␈ε(∞␈↓ β4␈ε",␈αand␈αthe␈αerrors␈αa$er␈αthe␈αpass␈αwill␈αbe␈αat␈αm␈α↓ost␈α2␈ε(∂␈ε"␈απ+␈απ2␈↓ 	m␈ε(k␈↓ 
↓␈ε(∞␈↓ 
∪␈ε".␈α⊂There␈αis
␈ββπ␈↓ ↓W␈ε%2
␈ββ&␈↓ ↓H␈ε"n␈α↓o␈αerror␈αin␈α\Pass␈α0,"␈αso␈αw␈α␈e␈α|nd␈αby␈αinduction␈αon␈↓ π>␈ε(j␈↓ πZ␈ε"that␈αthe␈α
maxim␈α␈um␈αerror␈αa$er
␈ββK␈↓ ∧\␈ε+j
␈ββQ␈↓ ↓H␈ε"\Pass␈↓ α+␈ε(j␈↓ α<␈ε""␈α
is␈αbounded␈αby␈α(␈↓ ∧J␈ε"2␈↓ ∧q␈ε6␈␈ε"␈αε1)␈ε6␈αε↓␈ε"␈α¬2␈↓ ¬`␈ε(k␈↓ ¬t␈ε(∞␈↓ επ␈ε",␈αand␈αthe␈αcomputed␈αv␈α}alues␈α
of␈↓ 	U␈ε(u␈↓ 	W␈ε"∂␈↓ 
¬␈ε"will␈α
satisfy
␈ββ]␈↓ 	j␈ε+s
␈ββv␈↓ α∞␈ε90␈↓ βS␈ε+k␈↓ 	V␈ε90
␈ββ|␈↓ ↓H␈ε6j␈ε"(␈↓ ↓↑␈ε(u␈↓ ↓←␈ε"∂␈↓ αα␈ε")␈↓ α ␈ε6␈␈↓ αL␈ε(u␈↓ αM␈ε"∂␈↓ αp␈ε6j␈↓ βε␈ε"<␈α(␈↓ βA␈ε"2␈↓ βn␈ε6␈␈ε"␈α	1)␈ε6␈αλ↓␈ε"␈α	2␈↓ ∧f␈ε(k␈↓ ∧z␈ε(∞␈↓ ¬␈ε".␈α∪A␈α
similar␈α
form␈α␈ula␈α
will␈α
h␈α↓old␈α
for␈α
(␈↓ 	)␈ε"∂␈↓ 	)␈ε(v␈↓ 	J␈ε")␈↓ 	`␈ε";␈α
and␈α
w␈α␈e␈α
will
␈β∧λ␈↓ ↓r␈ε+s␈↓ α`␈ε+s␈↓ 	;␈ε+s
␈β∧'␈↓ ↓H␈ε"ha␈α␈v␈α␈e
␈β∧K␈↓ ∧p␈ε90␈↓ εH␈ε+k
␈β∧R␈↓ ∧%␈ε6j␈ε"(␈↓ ∧;␈ε(w␈↓ ∧>␈ε"∂␈↓ ∧d␈ε")␈↓ ¬↓␈ε6␈␈↓ ¬-␈ε(w␈↓ ¬1␈ε"∂␈↓ ¬V␈ε6j␈ε"␈α
<␈α
2(␈↓ ε6␈ε"2␈↓ εc␈ε6␈␈ε"␈αλ1)␈ε6␈αλ↓␈ε"␈αλ2␈↓ πY␈ε(k␈↓ πm␈ε(∞␈↓ λπ␈ε"+␈↓ λ3␈ε(∞␈↓ λE␈ε".
␈β∧←␈↓ ∧T␈ε+s␈↓ ¬G␈ε+s
␈β¬∃␈↓ ↓H␈ε"During␈αthe␈αin␈α␈v␈α␈erse␈αtransformation␈αthere␈αis␈αan␈αadditional␈αaccum␈α␈ulation␈αof␈αerrors,
␈β¬:␈↓ ∧k␈ε+k
␈β¬@␈↓ ↓H␈ε"but␈αthe␈αdivision␈αby␈↓ β}␈ε(K␈↓ ∧+␈ε"=␈↓ ∧Y␈ε"2␈↓ ¬	␈ε"ameliorates␈αm␈α↓ost␈αof␈αthis;␈αby␈αthe␈αsame␈αargumen␈α␈t␈αw␈α␈e
␈β¬e␈↓ ¬H␈ε90
␈β¬k␈↓ ↓H␈ε"|nd␈αthat␈αthe␈αcomputed␈αv␈α}alues␈↓ ¬-␈ε(w␈↓ ¬↑␈ε"will␈αsatisfy
␈β¬|␈↓ ¬C␈ε+r
␈βε6␈↓ ¬D␈ε90␈↓ π&␈ε+k
␈βε>␈↓ ¬ ␈ε6j␈↓ ¬*␈ε(w␈↓ ¬W␈ε6␈␈↓ εβ␈ε(w␈↓ ε,␈ε6j␈ε"␈α
<␈α
4␈↓ π␈ε(k␈↓ π∀␈ε"2␈↓ π8␈ε(∞␈↓ πK␈ε".
␈βεJ␈↓ ε≤␈ε+r
␈βεN␈↓ ¬@␈ε+r
␈βπ
␈↓ ε↔␈ε%2␈↓ ε&␈ε+k␈↓ ε7␈ε%+␈α␈2␈ε+␈α↓l␈↓ π∞␈ε90
␈βπ⊂␈↓ ↓H␈ε"W␈α⎇e␈α∞need␈α∞en␈α↓ough␈α∂precision␈α∞to␈α∂mak␈α␈e␈↓ ε¬␈ε"2␈↓ εt␈ε(w␈↓ π'␈ε"round␈α∂to␈α∞the␈α∂correct␈α∞in␈α␈teger␈↓ 
t␈ε(W␈↓ "␈ε",
␈βπ≤␈↓ ∪␈ε+r
␈βπ ␈↓ π
␈ε+r
␈βπ;␈↓ ↓H␈ε"hence␈αw␈α␈e␈αneed
␈βπV␈↓ λ∩␈ε"1
␈βπf␈↓ ∧T␈ε%2␈↓ ∧d␈ε+k␈↓ ∧t␈ε%+2␈ε+l␈ε%+␈α␈2+␈↓ ¬u␈ε%lg␈↓ ε∩␈ε+k␈↓ ε"␈ε%+␈↓ ε@␈ε+k␈↓ εQ␈ε%+␈α␈1/␈α↓2␈ε9␈␈ε+␈α␈m
␈βπn␈↓ ∧B␈ε"2␈↓ π`␈ε6∀␈↓ λ(␈ε",
␈βλα␈↓ λ∩␈∧λαλ∩α∩
␈βλπ␈↓ λ∩␈ε"2
␈βλ=␈↓ ↓H␈ε"i.e.,␈ε(␈αm␈ε6␈α	∃␈ε"␈α
3␈↓ αu␈ε(k␈↓ β∩␈ε"+␈αλ2␈↓ βP␈ε(l␈↓ βc␈ε"+␈↓ ∧∂␈ε"lg␈↓ ∧1␈ε(k␈↓ ∧M␈ε"+␈αλ7/2.␈α⊂This␈αwill␈αh␈α↓old␈αif␈αw␈α␈e␈αsimply␈αrequire␈αthat
␈β	∂␈↓ ∧9␈ε(k␈↓ ∧W␈ε6∃␈ε"␈α
7␈↓ ¬←␈ε"and␈↓ εa␈ε(m␈ε6␈α
∃␈ε"␈α
4␈↓ πK␈ε(k␈↓ πg␈ε"+␈αλ2␈↓ λ%␈ε(l␈↓ λ1␈ε".␈↓ 
p␈ε"(42)
␈β	b␈↓ ↓H␈ε"Relations␈α∂(35)␈α⊂and␈α⊂(42)␈α⊂can␈α⊂be␈α⊂used␈α∂to␈α⊂determine␈α⊂parameters␈↓ 	6␈ε(k␈↓ 	J␈ε",␈↓ 	e␈ε(l␈↓ 	p␈ε",␈ε(␈α⊃m␈ε"␈α⊂so␈α∂that
␈β

␈↓ ↓H␈ε"m␈α␈ultiplication␈α∞tak␈α␈es␈↓ ∧⊃␈ε(O␈↓ ∧-␈ε"(␈ε(n␈ε")␈α
+␈↓ ¬∪␈ε(O␈↓ ¬/␈ε"(␈↓ ¬;␈ε(M␈↓ ¬d␈ε(n␈↓ ¬z␈ε(k␈↓ ε∞␈ε"/␈↓ ε ␈ε(l␈↓ ε+␈ε")␈α∂units␈α∂of␈α∞time,␈α∂where␈↓ 	→␈ε(M␈↓ 	P␈ε"is␈α∂the␈α∂time␈α∞to
␈β
8␈↓ ↓H␈ε"m␈α␈ultiply␈ε(␈αm␈ε"␈α␈-bit␈αfractions.
␈β
c␈↓ α␈ε"If␈α∪w␈α␈e␈α∀are␈α∪using␈↓ ∧U␈ε",␈α∀for␈α∪example,␈α∃suppose␈α∀w␈α␈e␈α∪w␈α␈an␈α␈t␈α∀to␈α∪m␈α␈ultiply␈α∪binary
␈β
e␈↓ ∧≥␈ε5MI␈α␈X
␈βλ␈↓ ∧H␈ε%1␈α↓3
␈β∞␈↓ ↓H␈ε"n␈α␈um␈α␈bers␈α⊃ha␈α␈ving␈ε(␈α∩n␈ε"␈α∩=␈↓ ∧6␈ε"2␈↓ ∧{␈ε"=␈α∪8192␈α∩bits␈α⊃each.␈α!W␈α⎇e␈α⊃can␈α∩ch␈α↓o␈α↓ose␈↓ 	K␈ε(k␈↓ 	r␈ε"=␈α∪11,␈↓ 
j␈ε(l␈↓ λ␈ε"=
␈β:␈↓ ↓H␈ε"8,␈ε(␈α∀m␈ε"␈α∀=␈α∃60,␈α∪so␈α∪that␈α∩the␈α∪necessary␈ε(␈α∩m␈ε"-bit␈α∩operations␈α∩are␈α∪n␈α↓othing␈α∩m␈α↓ore␈α∩than
␈βe␈↓ ↓H␈ε"double␈α
precision␈α
arithmetic.␈α∀The␈α
running␈α
time␈↓ π:␈ε(M␈↓ πp␈ε"needed␈α
to␈α
do␈α
|xed␈α
poin␈α␈t␈ε(␈α∞m␈ε"␈α␈-
␈β⊂␈↓ ↓H␈ε"bit␈α∞complex␈α∂m␈α␈ultiplication␈α∞will␈α∞therefore␈α∂be␈α∞comparativ␈α␈ely␈α∂small.␈α↔With␈α∞triple-
␈β5␈↓ α␈ε%1␈α↓4
␈β;␈↓ ↓H␈ε"precision␈α∂operations␈α∂w␈α␈e␈α∂can␈α∂go␈α∂up␈α∂for␈α∂example␈α∂to␈↓ πt␈ε(k␈↓ λ_␈ε"=␈↓ λK␈ε(l␈↓ λe␈ε"=␈α∂15,␈ε(␈α⊂n␈ε6␈α∂∀␈ε"␈α∂15␈ε6␈α
↓␈↓ 
p␈ε"2␈↓ "␈ε",
␈βf␈↓ ↓H␈ε"which␈αtak␈α␈es␈αus␈αw␈α␈a␈α␈y␈αbey␈α␈ond␈↓ ¬8␈ε"'s␈αmem␈α↓ory␈αcapacit␈α␈y.
␈βh␈↓ ¬␈ε5MI␈α␈X
␈β
∩␈↓ α␈ε"F␈α⎇urther␈α
study␈α
of␈α
the␈α
ch␈α↓oice␈α
of␈↓ ¬f␈ε(k␈↓ ¬z␈ε",␈↓ ε∞␈ε(l␈↓ ε~␈ε",␈α
and␈ε(␈α
m␈ε"␈α
leads␈α
in␈α
fact␈α
to␈α
a␈α
rather␈α
surprising
␈β
=␈↓ ↓H␈ε"conclusion:␈ε/␈α∂F␈α⎇or␈α
all␈α	practical␈α
purposes␈α	w␈α␈e␈α	can␈α
assume␈α	that␈↓ λK␈ε(M␈↓ λ⎇␈ε/is␈α	constan␈α␈t,␈α
and␈α	the
␈β
h␈↓ ↓H␈ε/Sch␈↓ α␈ε/∪␈↓ α␈ε/o␈↓ α∩␈ε/nhage↑Strassen␈α∞m␈α␈ultiplication␈α∂technique␈α∞will␈α∂ha␈α␈v␈α␈e␈α∞a␈α∞running␈α∂time␈α∞linearly
␈β∞∪␈↓ ↓H␈ε/proportional␈α
to␈ε(␈α∞n␈ε/.␈ε"␈α≤The␈α∞reason␈α
is␈α∞that␈α∞w␈α␈e␈α
can␈α∞ch␈α↓o␈α↓ose␈↓ λ$␈ε(k␈↓ λE␈ε"=␈↓ λv␈ε(l␈↓ 	∂␈ε"and␈ε(␈α
m␈ε"␈α
=␈α
6␈↓ 
F␈ε(k␈↓ 
Z␈ε";␈α∞this
␈β∞>␈↓ ↓H␈ε"ch␈α↓oice␈α⊂of␈↓ αh␈ε(k␈↓ β
␈ε"is␈α⊃alw␈α␈a␈α␈ys␈α⊂less␈α⊃than␈↓ ¬M␈ε"lg␈↓ ¬o␈ε(n␈ε",␈α∩so␈α⊂w␈α␈e␈α⊃will␈α⊃nev␈α␈er␈α⊃need␈α⊂to␈α⊃use␈α⊃m␈α↓ore␈α⊂than
␈β∞j␈↓ ↓H␈ε"sextuple␈α∂precision␈α∂unless␈ε(␈α⊂n␈ε"␈α∂is␈α∂larger␈α⊂than␈α∂the␈α⊂w␈α␈ord␈α∂size␈α∂of␈α⊂our␈α∂computer.␈α∨(In
␈β∂∃␈↓ ↓H␈ε"particular,␈ε(␈α
n␈ε"␈αw␈α␈ould␈α
ha␈α␈v␈α␈e␈α
to␈α
be␈α
larger␈α
than␈α
the␈α
capacit␈α␈y␈α
of␈α
an␈αindex␈α
register,␈α
so
␈β∂@␈↓ ↓H␈ε"w␈α␈e␈αprobably␈αcouldn't␈α|t␈αthe␈αn␈α␈um␈α␈bers␈ε(␈αu␈ε"␈αand␈↓ πα␈ε(v␈↓ π!␈ε"in␈αmain␈αmem␈α↓ory.)
␈β∂k␈↓ α␈ε"The␈α∞practical␈α
problem␈α∞of␈α
fast␈α∞m␈α␈ultiplication␈α
is␈α∞therefore␈α
solv␈α␈ed,␈α∞except␈α
for
␈β⊂⊗␈↓ ↓H␈ε"impro␈α␈v␈α␈emen␈α␈ts␈α∞in␈α∂the␈α∞constan␈α␈t␈α∞factor.␈α_In␈α∞fact,␈α∂the␈α∂all-in␈α␈teger␈α∞con␈α␈v␈α␈olution␈α∞algo-
␈β⊂B␈↓ ↓H␈ε"rithm␈α
of␈αexercise␈α
4.6.4↑59␈α
is␈αprobably␈α
a␈αbetter␈α
ch␈α↓oice␈αfor␈α
practical␈α
high-precision
␈β⊂m␈↓ ↓H␈ε"m␈α␈ultiplication,␈α⊂ev␈α␈en␈α⊂th␈α↓ough␈α⊂it␈α∂has␈α⊂a␈α∂sligh␈α␈tly␈α⊂w␈α␈orse␈α⊂asymptotic␈α∂beha␈α␈vior.␈α≠Our
␈β⊃_␈↓ ↓H␈ε"in␈α␈terest␈α∞in␈α∞m␈α␈ultiplying␈α∞large␈α∞n␈α␈um␈α␈bers␈α∞is␈α∞partly␈α∞theoretical,␈α∂h␈α↓o␈α␈w␈α␈ev␈α␈er,␈α∞because␈α∞it
␈β∪(

␈β↓U␈↓ ↓H␈ε"4.3.3␈↓ 
)␈ε"?␈↓ 
v␈ε"295
␈β↓\␈↓ εF␈ε∞H␈α↓O␈α␈W␈α
F␈α|AST␈α
CA␈α↓N␈α	W␈α↓E␈α
MUL␈α}TI␈α↓P␈α␈L␈α}Y
␈βα$␈↓ ↓H␈ε"is␈α⊂in␈α␈teresting␈α⊂to␈α⊂explore␈α⊂the␈α⊂ultimate␈α⊂limits␈α⊂of␈α⊂computational␈α∂complexit␈α␈y.␈α≤So
␈βαO␈↓ ↓H␈ε"let's␈α
forget␈α
practical␈α∞considerations␈α
and␈α
suppose␈α∞that␈ε(␈α
n␈ε"␈α
is␈α
extremely␈α∞h␈α␈uge,␈α
per-
␈βαz␈↓ ↓H␈ε"haps␈α
m␈α␈uch␈α∞larger␈α∞than␈α
the␈α∞n␈α␈um␈α␈ber␈α∞of␈α∞atoms␈α
in␈α∞the␈α∞univ␈α␈erse.␈α∃W␈α⎇e␈α∞can␈α
let␈ε(␈α∞m␈ε"␈α
be
␈ββ&␈↓ ↓H␈ε"appro␈α␈ximately␈α∂6␈↓ βQ␈ε"lg␈↓ βs␈ε(n␈ε",␈α⊃and␈α⊂use␈α∂the␈α⊂same␈α⊂algorithm␈α⊂recursiv␈α␈ely␈α∂to␈α⊂do␈α⊂the␈ε(␈α⊂m␈ε"␈α␈-bit
␈ββ2␈↓ λ>␈ε↓␈␈↓ 	]␈ε↓↓
␈ββQ␈↓ ↓H␈ε"m␈α␈ultiplications.␈α⊂The␈αrunning␈αtime␈αwill␈αsatisfy␈↓ π"␈ε(T␈↓ π;␈ε"(␈ε(n␈ε")␈α
=␈↓ λ!␈ε(O␈↓ λL␈ε(n␈↓ λa␈ε(T␈↓ λ{␈ε"(␈↓ 	π␈ε"log␈↓ 	;␈ε(n␈ε")␈↓ 	k␈ε";␈αhence
␈β∧∨␈↓ β`␈ε(T␈↓ βz␈ε"(␈ε(n␈ε")␈ε6␈α
∀␈↓ ∧`␈ε(C␈↓ ¬α␈ε(n␈ε"(␈↓ ¬$␈ε(C␈↓ ¬F␈ε"lg␈↓ ¬h␈ε(n␈ε")(␈↓ ε⊗␈ε(C␈↓ ε8␈ε"lg␈↓ εZ␈ε"lg␈↓ ε|␈ε(n␈ε")(␈↓ π*␈ε(C␈↓ πL␈ε"lg␈↓ πn␈ε"lg␈↓ λ⊂␈ε"lg␈↓ λ2␈ε(n␈ε")␈↓ λZ␈ε".␈αε.␈αε.␈↓ 	
␈ε",
␈β∧m␈↓ ↓H␈ε"where␈αthe␈αproduct␈αcon␈α␈tin␈α␈ues␈αun␈α␈til␈αreaching␈αa␈αfactor␈αwith␈↓ λO␈ε"lg␈↓ λq␈ε".␈αε.␈αε.␈↓ 	!␈ε"lg␈↓ 	C␈ε(n␈ε6␈α	∀␈ε"␈α
1.
␈β¬→␈↓ α␈ε"Sch␈↓ αD␈ε"∪␈↓ αD␈ε"o␈↓ αV␈ε"nhage␈αλand␈α	Strassen␈αλsh␈α↓o␈α␈w␈α␈ed␈α	h␈α↓o␈α␈w␈αλto␈α	impro␈α␈v␈α␈e␈αλthis␈α	theoretical␈αλupper␈αλbound
␈β¬D␈↓ ↓H␈ε"to␈↓ ↓q␈ε(O␈↓ α∞␈ε"(␈ε(n␈↓ α6␈ε"log␈↓ αj␈ε(n␈↓ β¬␈ε"log␈↓ β9␈ε"log␈↓ βm␈ε(n␈ε")␈α
in␈α	their␈α
paper,␈α
by␈α
using␈ε/␈α
in␈α␈teger␈ε"␈α	n␈α␈um␈α␈bers␈↓ 	∂␈ε(|␈↓ 	0␈ε"to␈α
carry␈α
out␈α	fast
␈β¬i␈↓ 	∃␈ε+e
␈β¬o␈↓ ↓H␈ε"F␈α⎇ourier␈αtransforms␈αon␈αin␈α␈tegers,␈αm␈α↓odulo␈αn␈α␈um␈α␈bers␈αof␈αthe␈αform␈↓ 	β␈ε"2␈↓ 	+␈ε"+␈αε1.␈α⊂This␈αupper
␈βε~␈↓ ↓H␈ε"bound␈α
applies␈αto␈α
T␈α⎇uring␈αmachines,␈α
i.e.,␈αto␈αcomputers␈α
with␈α
bounded␈αmem␈α↓ory␈α
and
␈βεE␈↓ ↓H␈ε"a␈α|nite␈αn␈α␈um␈α␈ber␈αof␈αarbitrarily␈αlong␈αtapes.
␈βεq␈↓ α␈ε"If␈αw␈α␈e␈αallo␈α␈w␈αourselv␈α␈es␈αa␈αm␈α↓ore␈αpo␈α␈w␈α␈erful␈αcomputer,␈αwith␈αrandom␈αaccess␈αto␈αan␈α␈y
␈βπ≤␈↓ ↓H␈ε"n␈α␈um␈α␈ber␈α∂of␈α⊂w␈α␈ords␈α⊂of␈α⊂bounded␈α⊂size,␈α⊃Sch␈↓ ε5␈ε"∪␈↓ ε5␈ε"o␈↓ εG␈ε"nhage␈α∂has␈α⊂poin␈α␈ted␈α⊂out␈α⊂that␈α⊂the␈α∂upper
␈βπG␈↓ ↓H␈ε"bound␈α⊂drops␈α⊂to␈↓ βQ␈ε(O␈↓ βm␈ε"(␈ε(n␈↓ ∧∃␈ε"log␈↓ ∧I␈ε(n␈ε").␈α≥F␈α⎇or␈α⊃w␈α␈e␈α⊂can␈α⊂ch␈α↓o␈α↓ose␈↓ πP␈ε(k␈↓ πu␈ε"=␈↓ λ+␈ε(l␈↓ λF␈ε"and␈ε(␈α⊃m␈ε"␈α⊃=␈α⊃6␈↓ 
	␈ε(k␈↓ 
≡␈ε",␈α⊃and␈α⊂w␈α␈e
␈βπr␈↓ ↓H␈ε"ha␈α␈v␈α␈e␈α∂time␈α∂to␈α∂build␈α∂a␈α∂complete␈α∂m␈α␈ultiplication␈α∂table␈α∂of␈α∂all␈α∂possible␈α∂products␈ε(␈α∂x␈↓ ~␈ε(y
␈βλ↔␈↓ βV␈ε9d␈ε+m␈ε%/12␈ε9␈α↓e␈↓ 	ε␈ε+k␈↓ 	e␈ε+k␈↓ 	v␈ε%+␈α␈1
␈βλ≥␈↓ ↓H␈ε"for␈α
0␈ε6␈α
∀␈ε(␈αx␈ε",␈↓ αt␈ε(y␈↓ β∀␈ε"<␈↓ βD␈ε"2␈↓ ∧8␈ε".␈α≤(The␈α∞n␈α␈um␈α␈ber␈α
of␈α∞such␈α∞products␈α
is␈↓ λt␈ε"2␈↓ 	%␈ε"or␈↓ 	S␈ε"2␈↓ 
$␈ε",␈α∞and␈α
w␈α␈e
␈βλI␈↓ ↓H␈ε"can␈α
compute␈α∞each␈α
table␈α∞en␈α␈try␈α
by␈α
addition␈α∞from␈α
one␈α∞of␈α
its␈α∞predecessors␈α
in␈↓ 
d␈ε(O␈↓ ␈ε"(␈↓ ␈ε(k␈↓  ␈ε")
␈βλn␈↓ βb␈ε+k
␈βλt␈↓ ↓H␈ε"steps,␈α
hence␈↓ β∪␈ε(O␈↓ β/␈ε"(␈↓ β;␈ε(k␈↓ βP␈ε"2␈↓ βt␈ε")␈α=␈↓ ∧=␈ε(O␈↓ ∧Y␈ε"(␈ε(n␈ε")␈α
steps␈α∞will␈α
su}ce␈α∞for␈α
the␈α∞calculation.)␈α≤In␈α
this␈α
case
␈β	→␈↓ λ↑␈ε9d␈ε+m␈ε%/12␈ε9␈α↓e
␈β	∨␈↓ ↓H␈ε(M␈↓ ↓⎇␈ε"is␈αthe␈αtime␈α
needed␈αto␈α
do␈α12-place␈αarithmetic␈α
in␈αradix␈↓ λL␈ε"2␈↓ 	@␈ε",␈α
and␈αit␈αfollo␈α␈ws
␈β	J␈↓ ↓H␈ε"that␈↓ α∃␈ε(M␈↓ αH␈ε"=␈↓ αv␈ε(O␈↓ β∪␈ε"(␈↓ β∨␈ε(k␈↓ β3␈ε")␈α
=␈↓ βw␈ε(O␈↓ ∧∪␈ε"(␈↓ ∧∨␈ε"log␈↓ ∧S␈ε(n␈ε")␈αbecause␈↓ ε∧␈ε"1-place␈↓ ε}␈ε"m␈α␈ultiplication␈αcan␈αbe␈αdone␈αby␈αtable
␈β	u␈↓ ↓H␈ε"lo␈α↓okup.
␈β
!␈↓ α␈ε"Sch␈↓ αD␈ε"∪␈↓ αD␈ε"o␈↓ αV␈ε"nhage␈α∂disco␈α␈v␈α␈ered␈α∂in␈α∂1979␈α∂that␈α∂a␈↓ εg␈ε/poin␈α␈ter␈α∂machine␈ε"␈α⊂can␈α∂carry␈α∂out␈ε(␈α∂n␈ε"␈α␈-bit
␈β
L␈↓ ↓H␈ε"m␈α␈ultiplication␈αin␈↓ βW␈ε(O␈↓ βs␈ε"(␈ε(n␈ε")␈αsteps;␈αsee␈αexercise␈α12.␈α⊂Such␈αdevices␈α(which␈αare␈αalso␈αcalled
␈β
w␈↓ ↓H␈ε"\␈↓ ↓Z␈ε"storage␈α∞m␈α↓odi|cation␈α∞machines"␈α∞and␈α∞\␈↓ ε3␈ε"linking␈α∂automata")␈α∞seem␈α∞to␈α∞pro␈α␈vide␈α∞the
␈β"␈↓ ↓H␈ε"best␈α
m␈α↓odels␈α
of␈α
computation␈α
when␈ε(␈α
n␈ε6␈α
!␈α
1␈ε",␈αas␈α
discussed␈α
at␈α
the␈α
end␈α
of␈α
Section␈α
2.6.
␈βM␈↓ ↓H␈ε"So␈α
w␈α␈e␈α
can␈α∞conclude␈α
that␈α∞m␈α␈ultiplication␈α
in␈↓ εm␈ε(O␈↓ π
␈ε"(␈ε(n␈ε")␈α
steps␈α
is␈α∞possible␈α
for␈α
theoretical
␈βy␈↓ ↓H␈ε"purposes␈αas␈αw␈α␈ell␈αas␈αin␈αpractice.
␈β6␈↓ ↓H␈ε2D.␈α
Division.␈ε"␈α∩No␈α␈w␈α
that␈α
w␈α␈e␈α
ha␈α␈v␈α␈e␈α
e}cien␈α␈t␈α
routines␈α
for␈α
m␈α␈ultiplication,␈α
let's␈α
consider
␈βa␈↓ ↓H␈ε"the␈αin␈α␈v␈α␈erse␈αproblem.␈α∩It␈αturns␈α
out␈αthat␈↓ ε,␈ε"division␈α
can␈αbe␈α
performed␈αjust␈α
as␈αfast␈αas
␈β
␈↓ ↓H␈ε"m␈α␈ultiplication,␈αexcept␈αfor␈αa␈αconstan␈α␈t␈αfactor.
␈β
7␈↓ α␈ε"T␈α⎇o␈α∂divide␈α∂an␈ε(␈α∂n␈ε"-bit␈α∂n␈α␈um␈α␈ber␈ε(␈α∂u␈ε"␈α∞by␈α∂an␈ε(␈α∂n␈ε"-bit␈α∂n␈α␈um␈α␈ber␈↓ λ9␈ε(v␈↓ λL␈ε",␈α⊂w␈α␈e␈α∂ma␈α␈y␈α∂|rst␈α∞|nd␈α∂an
␈β
c␈↓ ↓H␈ε(n␈ε"␈α␈-bit␈α∂appro␈α␈ximation␈α∞to␈α∂1/␈↓ ∧j␈ε(v␈↓ ∧⎇␈ε",␈α∂then␈α∞m␈α␈ultiply␈α∂by␈ε(␈α∞u␈ε"␈α∂to␈α∞get␈α∂an␈α∞appro␈α␈ximation␈↓ 
k␈ε"∂␈↓ 
k␈ε(q␈↓ ␈ε"to
␈β∞∞␈↓ ↓H␈ε(u␈ε"␈α␈/␈↓ ↓n␈ε(v␈↓ α↓␈ε";␈α∩|nally,␈α∩w␈α␈e␈α⊂can␈α⊂mak␈α␈e␈α⊂the␈α⊂sligh␈α␈t␈α⊂correction␈α⊃necessary␈α⊂to␈↓ 	#␈ε"∂␈↓ 	#␈ε(q␈↓ 	F␈ε"to␈α⊂ensure␈α⊂that
␈β∞9␈↓ ↓H␈ε"0␈ε6␈α∀␈ε(␈αu␈ε6␈αλ␈␈↓ α`␈ε(q␈↓ αs␈ε(v␈↓ β∩␈ε"<␈↓ βB␈ε(v␈↓ βc␈ε"by␈α
using␈α
an␈α↓other␈α
m␈α␈ultiplication.␈α∀F␈α⎇rom␈α
this␈α∞reasoning,␈α
w␈α␈e␈α
see
␈β∞d␈↓ ↓H␈ε"that␈αit␈αsu}ces␈αto␈αha␈α␈v␈α␈e␈αan␈αe}cien␈α␈t␈αalgorithm␈αfor␈αappro␈α␈ximating␈αthe␈αreciprocal␈αof
␈β∂∂␈↓ ↓H␈ε"an␈ε(␈α
n␈ε"␈α␈-bit␈α
n␈α␈um␈α␈ber.␈α∪The␈α
follo␈α␈wing␈α
algorithm␈α
does␈α
this,␈α
using␈α
\␈↓ 	¬␈ε"Newton's␈αmeth␈α↓od"
␈β∂;␈↓ ↓H␈ε"as␈αexplained␈αat␈αthe␈αend␈αof␈αSection␈α4.3.1.
␈β∂x␈↓ ↓H␈ε2Algorithm␈α
R␈ε"␈α∞(␈ε/High-precision␈↓ ¬_␈ε/reciprocal␈↓ ε2␈ε")␈ε2.␈ε"␈α≠Let␈↓ π'␈ε(v␈↓ πG␈ε"ha␈α␈v␈α␈e␈α∞the␈α
binary␈α
represen␈α␈tation
␈β⊂#␈↓ ↓H␈ε(v␈↓ ↓e␈ε"=␈α(0.␈↓ α<␈ε(v␈↓ α↑␈ε(v␈↓ β↓␈ε(v␈↓ β)␈ε".␈αε.␈αε.␈↓ βY␈ε")␈↓ βv␈ε",␈αwhere␈↓ ∧u␈ε(v␈↓ ¬"␈ε"=␈α
1.␈α∩This␈αalgorithm␈α
computes␈αan␈αappro␈α␈ximation
␈β⊂/␈↓ αM␈ε%1␈↓ αp␈ε%2␈↓ β∩␈ε%3␈↓ βe␈ε%2␈↓ ¬ε␈ε%1
␈β⊂N␈↓ ↓H␈ε(z␈↓ ↓f␈ε"to␈α1/␈↓ α6␈ε(v␈↓ αI␈ε",␈αsuch␈αthat
␈β⊂r␈↓ π
␈ε9␈␈ε+n
␈β⊂y␈↓ ¬.␈ε6j␈↓ ¬8␈ε(z␈↓ ¬S␈ε6␈␈ε"␈αλ1/␈↓ ε#␈ε(v␈↓ ε6␈ε6j␈α
∀␈↓ εx␈ε"2␈↓ π<␈ε".␈↓ 
p␈ε"(43)
␈β∪(

␈β↓U␈↓ ↓H␈ε"296␈↓ 
b␈ε"4.3.3
␈β↓\␈↓ α=␈ε∞ARITH␈α↓MET␈α↓IC
␈βα≥␈↓ ε≤␈ε%1
␈βα!␈↓ ↓H␈ε2R1.␈↓ α	␈ε"[Initial␈αappro␈α␈ximation.]␈α→Set␈↓ ¬M␈ε(z␈↓ ¬j␈ε6␈ ␈↓ ε/␈ε6b␈ε"32/(4␈↓ π⊃␈ε(v␈↓ π<␈ε"+␈αλ2␈↓ πz␈ε(v␈↓ λ$␈ε"+␈↓ λP␈ε(v␈↓ λr␈ε")␈ε6c␈ε"␈αand␈↓ 	↑␈ε(k␈↓ 	|␈ε6␈ ␈ε"␈α
0.
␈βα.␈↓ π#␈ε%1␈↓ λ␈ε%2␈↓ λa␈ε%3
␈βα2␈↓ ε≤␈ε%4
␈βα6␈↓ ε≤␈∧α6ε≤α⊂
␈βαV␈↓ ↓H␈ε2R2.␈↓ α	␈ε"[Newtonian␈α⊃iteration.]␈α!(A␈α␈t␈α⊃this␈α⊂poin␈α␈t␈α⊃w␈α␈e␈α⊂ha␈α␈v␈α␈e␈α⊃a␈α⊂n␈α␈um␈α␈ber␈↓ 	3␈ε(z␈↓ 	V␈ε"of␈α⊃the␈α⊂binary
␈βα{␈↓ ¬(␈ε+k
␈ββ↓␈↓ α␈ε"form␈α∂(␈ε(xx␈ε".␈ε(xx␈↓ βQ␈ε".␈αε.␈αε.␈↓ ∧↓␈ε(x␈↓ ∧∃␈ε")␈↓ ∧A␈ε"with␈↓ ¬⊗␈ε"2␈↓ ¬D␈ε"+␈α
1␈α∂places␈α∂a$er␈α∂the␈α⊂radix␈α∂poin␈α␈t,␈α∂and␈↓ 
/␈ε(z␈↓ 
Q␈ε6∀␈ε"␈α∂2.)
␈ββ∞␈↓ ∧!␈ε%2
␈ββ&␈↓ βC␈ε%2
␈ββ,␈↓ α␈ε"Calculate␈↓ β0␈ε(z␈↓ βe␈ε"=␈α⊃(␈ε(xxx␈ε".␈ε(xx␈↓ ¬~␈ε".␈αε.␈αε.␈↓ ¬J␈ε(x␈↓ ¬↑␈ε")␈↓ ε␈ε"exactly,␈α⊃using␈α⊂a␈α⊂high-speed␈α⊂m␈α␈ultiplication
␈ββ9␈↓ ¬j␈ε%2
␈ββQ␈↓ ¬\␈ε%2
␈ββX␈↓ α␈ε"routine.␈α≠Then␈α∂calculate␈↓ ¬≤␈ε(V␈↓ ¬I␈ε(z␈↓ ¬|␈ε"exactly,␈α⊂where␈↓ πs␈ε(V␈↓ λ+␈ε"=␈α⊂(0.␈↓ 	π␈ε(v␈↓ 	)␈ε(v␈↓ 	R␈ε".␈αε.␈αε.␈↓ 
α␈ε(v␈↓ ε␈ε")␈↓ "␈ε".
␈ββd␈↓ ¬2␈ε+k␈↓ λ	␈ε+k␈↓ 	_␈ε%1␈↓ 	;␈ε%2␈↓ 
"␈ε-k␈↓ 
0␈ε'+␈α↓1␈↓ ∩␈ε%2
␈ββe␈↓ 
∪␈ε%2␈↓ 
W␈ε%+3
␈β∧␈↓ λε␈ε-k␈↓ λ∀␈ε'+␈α↓1
␈β∧¬␈↓ ∧s␈ε%2␈↓ πY␈ε9␈␈↓ πw␈ε%2␈↓ λ;␈ε9␈␈ε%1
␈β∧␈↓ α␈ε"Then␈α	set␈↓ β≤␈ε(z␈↓ β9␈ε6␈ ␈ε"␈α
2␈↓ βy␈ε(z␈↓ ∧
␈ε6␈␈↓ ∧3␈ε(V␈↓ ∧`␈ε(z␈↓ ¬ε␈ε"+␈↓ ¬,␈ε(r␈↓ ¬<␈ε",␈α
where␈α	0␈ε6␈α
∀␈↓ ε␈␈ε(r␈↓ π→␈ε"<␈↓ πG␈ε"2␈↓ λr␈ε"is␈α	added␈α	if␈α	necessary
␈β∧↔␈↓ ∧I␈ε+k
␈β∧/␈↓ πQ␈ε-k␈↓ π←␈ε'+␈α↓1
␈β∧4␈↓ π$␈ε9␈␈↓ πB␈ε%2␈↓ λε␈ε9␈␈ε%1
␈β∧:␈↓ α␈ε"to␈α
\round␈α	up"␈↓ βq␈ε(z␈↓ ∧
␈ε"so␈α	that␈α
it␈α	is␈α
a␈α	m␈α␈ultiple␈α
of␈↓ π∩␈ε"2␈↓ λ4␈ε".␈α⊂Finally,␈α
set␈↓ 
ε␈ε(k␈↓ 
$␈ε6␈ ␈↓ 
R␈ε(k␈↓ 
i␈ε"+␈αβ1.
␈β∧h␈↓ ∧J␈ε+k
␈β∧o␈↓ ↓H␈ε2R3.␈↓ α	␈ε"[T␈α⎇est␈α⊂for␈α⊃end.]␈α!If␈↓ ∧8␈ε"2␈↓ ∧n␈ε"<␈ε(␈α⊃n␈ε",␈α⊃go␈α⊂back␈α⊃to␈α⊂step␈α⊂R2;␈α∪otherwise␈α⊂the␈α⊂algorithm
␈β¬~␈↓ α␈ε"terminates.
␈β¬#␈↓ βd␈∧¬#βd≠∂
␈β¬X␈↓ α␈ε"This␈αalgorithm␈αis␈αbased␈αon␈αa␈αsuggestion␈αby␈αS.␈αA.␈↓ λ∂␈ε"Co␈α↓ok.␈α⊂A␈αsimilar␈αtechnique
␈βεβ␈↓ ↓H␈ε"has␈α⊂been␈α∂used␈α⊂in␈α⊂computer␈α⊂hardw␈α␈are␈α⊂[see␈↓ εt␈ε"Anderson,␈↓ λ#␈ε"Earle,␈↓ 	⊂␈ε"Goldschmidt,␈α⊂and
␈βε.␈↓ ↓H␈ε"Po␈α␈w␈α␈ers,␈ε/␈αIBM␈α
J.␈α
Res.␈αDev.␈ε2␈α
11␈ε"␈α
(1967),␈α48↑52].␈α∩Of␈α
course,␈α
it␈α
is␈αnecessary␈α
to␈αcheck
␈βεY␈↓ ↓H␈ε"the␈α
accuracy␈α
of␈α
Algorithm␈α	R␈α
quite␈α
carefully,␈αbecause␈α
it␈α
comes␈α
v␈α␈ery␈α
close␈α	to␈α
being
␈βπ∧␈↓ ↓H␈ε"inaccurate.␈α⊂W␈α⎇e␈αwill␈αpro␈α␈v␈α␈e␈αby␈αinduction␈αthat
␈βπM␈↓ λI␈ε-k
␈βπR␈↓ λ≤␈ε9␈␈↓ λ:␈ε%2
␈βπZ␈↓ ∧~␈ε(z␈↓ ∧7␈ε6∀␈ε"␈α
2␈↓ ¬?␈ε"and␈↓ εA␈ε6j␈↓ εK␈ε(z␈↓ εf␈ε6␈␈ε"␈αλ1/␈↓ π6␈ε(v␈↓ πH␈ε6j␈α
∀␈↓ λ
␈ε"2␈↓ 
p␈ε"(44)
␈βλ)␈↓ ↓H␈ε"at␈αthe␈αbeginning␈αand␈αend␈αof␈αstep␈αR2.
␈βλU␈↓ α␈ε"F␈α⎇or␈α⊂this␈α⊃purpose,␈α⊃let␈↓ ∧j␈ε(∞␈↓ ¬≤␈ε"=␈α⊃1/␈↓ ¬u␈ε(v␈↓ ε∪␈ε6␈␈↓ εB␈ε(z␈↓ εe␈ε",␈α∩where␈↓ πm␈ε(z␈↓ λ ␈ε"is␈α⊃the␈α⊂v␈α}alue␈α⊂of␈↓ 
≠␈ε(z␈↓ 
>␈ε"a$er␈↓ _␈ε(k
␈βλa␈↓ ∧y␈ε+k␈↓ εS␈ε+k␈↓ π}␈ε+k
␈β	␈↓ ↓H␈ε"iterations␈αof␈αstep␈αR2.␈α⊂T␈α⎇o␈αstart␈αthe␈αinduction␈αon␈↓ πA␈ε(k␈↓ πU␈ε",␈αw␈α␈e␈αha␈α␈v␈α␈e
␈β	H␈↓ ¬ ␈ε90␈↓ ε3␈ε90␈↓ πG␈ε90
␈β	O␈↓ β'␈ε(∞␈↓ βQ␈ε"=␈α
1/␈↓ ∧#␈ε(v␈↓ ∧>␈ε6␈␈ε"␈αλ8/␈↓ ¬∞␈ε(v␈↓ ¬2␈ε"+␈↓ ¬↑␈ε"(32/␈↓ ε ␈ε(v␈↓ εE␈ε6␈␈αλb␈ε"32/␈↓ π5␈ε(v␈↓ πQ␈ε6c␈ε")/4␈↓ λ→␈ε"=␈↓ λG␈ε(⊃␈↓ λs␈ε"+␈↓ 	∨␈ε(⊃␈↓ 	C␈ε",
␈β	\␈↓ β6␈ε%0␈↓ λZ␈ε%1␈↓ 	2␈ε%2
␈β
→␈↓ αD␈ε90␈↓ ¬o␈ε90␈↓ π_␈ε90
␈β
≠␈↓ 	i␈ε%1
␈β
∨␈↓ ↓H␈ε"where␈↓ α1␈ε(v␈↓ αZ␈ε"=␈α
(␈↓ β↔␈ε(v␈↓ β9␈ε(v␈↓ β[␈ε(v␈↓ β}␈ε")␈↓ ∧(␈ε"and␈↓ ∧o␈ε(⊃␈↓ ¬ ␈ε"=␈α(␈↓ ¬\␈ε(v␈↓ εα␈ε6␈␈ε"␈α	8␈↓ εA␈ε(v␈↓ εT␈ε")/␈↓ εr␈ε(v␈↓ π¬␈ε(v␈↓ π!␈ε",␈α∞so␈α∞that␈α
w␈α␈e␈α∞ha␈α␈v␈α␈e␈ε6␈α
␈␈↓ 
	␈ε"<␈↓ 
9␈ε(⊃␈↓ 
j␈ε6∀␈ε"␈α0
␈β
,␈↓ β(␈ε%1␈↓ βJ␈ε%2␈↓ βm␈ε%3␈↓ ∧
␈ε%2␈↓ ¬β␈ε%1␈↓ 
M␈ε%1
␈β
0␈↓ 	i␈ε%2
␈β
3␈↓ 	i␈∧
3	iα⊂
␈β
F␈↓ β>␈ε%1␈↓ ¬J␈ε%1
␈β
J␈↓ ↓H␈ε"and␈α0␈ε6␈α∀␈↓ α[␈ε(⊃␈↓ β
␈ε"<␈↓ βQ␈ε".␈α∩Hence␈ε6␈α
j␈↓ ∧b␈ε(∞␈↓ ¬α␈ε6j␈ε"␈α<␈↓ ¬↑␈ε".␈α∩No␈α␈w␈α
suppose␈α
that␈α(44)␈α
has␈α
been␈α
v␈α␈eri|ed␈αfor
␈β
W␈↓ αn␈ε%2␈↓ ∧q␈ε%0
␈β
[␈↓ β>␈ε%4␈↓ ¬J␈ε%2
␈β
←␈↓ β>␈∧
←β>α⊂␈↓ ¬J␈∧
←¬Jα⊂
␈β
v␈↓ ↓H␈ε(k␈↓ ↓\␈ε";␈αthen
␈β@␈↓ αU␈ε(∞␈↓ β-␈ε"=␈α
1/␈↓ β␈␈ε(v␈↓ ∧~␈ε6␈␈↓ ∧F␈ε(z␈↓ ¬ ␈ε"=␈α
1/␈↓ ¬r␈ε(v␈↓ ε
␈ε6␈␈↓ ε9␈ε(z␈↓ εd␈ε6␈␈↓ π⊂␈ε(z␈↓ π3␈ε"(1␈ε6␈αλ␈␈↓ λ¬␈ε(z␈↓ λ(␈ε(V␈↓ λP␈ε")␈ε6␈αλ␈␈↓ 	⊂␈ε(r
␈βL␈↓ αd␈ε+k␈↓ αt␈ε%+1␈↓ ∧W␈ε+k␈↓ ∧g␈ε%+1␈↓ εJ␈ε+k␈↓ π!␈ε+k␈↓ λ⊗␈ε+k␈↓ λ>␈ε+k
␈βn␈↓ λ!␈ε%2
␈βv␈↓ ¬ ␈ε"=␈↓ ¬N␈ε(∞␈↓ ¬w␈ε6␈␈↓ ε#␈ε(z␈↓ εF␈ε"(1␈ε6␈αλ␈␈↓ π_␈ε(z␈↓ π;␈ε(v␈↓ πN␈ε")␈ε6␈αλ␈␈↓ λ∞␈ε(z␈↓ λ3␈ε"(␈↓ λ?␈ε(v␈↓ λZ␈ε6␈␈↓ 	ε␈ε(V␈↓ 	.␈ε")␈ε6␈αλ␈␈↓ 	n␈ε(r
␈βα␈↓ ¬]␈ε+k␈↓ ε4␈ε+k␈↓ π)␈ε+k␈↓ 	≤␈ε+k
␈βε␈↓ λ!␈ε+k
␈β$␈↓ λB␈ε%2
␈β,␈↓ ¬ ␈ε"=␈↓ ¬N␈ε(∞␈↓ ¬w␈ε6␈␈ε"␈αλ(1/␈↓ εS␈ε(v␈↓ εn␈ε6␈␈↓ π~␈ε(∞␈↓ π;␈ε")␈↓ πG␈ε(v␈↓ πZ␈ε(∞␈↓ λβ␈ε6␈␈↓ λ/␈ε(z␈↓ λT␈ε"(␈↓ λ`␈ε(v␈↓ λ{␈ε6␈␈↓ 	'␈ε(V␈↓ 	O␈ε")␈ε6␈αλ␈␈↓ 
∂␈ε(r
␈β8␈↓ ¬]␈ε+k␈↓ π)␈ε+k␈↓ πi␈ε+k␈↓ 	=␈ε+k
␈β<␈↓ λB␈ε+k
␈βZ␈↓ ¬s␈ε%2␈↓ εL␈ε%2
␈βb␈↓ ¬ ␈ε"=␈↓ ¬N␈ε(v␈↓ ¬a␈ε(∞␈↓ ε
␈ε6␈␈↓ ε9␈ε(z␈↓ ε↑␈ε"(␈↓ εj␈ε(v␈↓ π¬␈ε6␈␈↓ π1␈ε(V␈↓ πY␈ε")␈ε6␈αλ␈␈↓ λ→␈ε(r␈↓ λ)␈ε".
␈βn␈↓ πG␈ε+k
␈βr␈↓ ¬s␈ε+k␈↓ εL␈ε+k
␈β
,␈↓ ↓H␈ε"No␈α␈w
␈β
K␈↓ εx␈ε-k␈↓ λ≤␈ε-k␈↓ λ*␈ε'+␈α↓1
␈β
O␈↓ ¬ε␈ε%2␈↓ ¬c␈ε%2␈↓ εK␈ε9␈␈↓ εi␈ε%2␈↓ π∃␈ε%2␈↓ πp␈ε9␈␈↓ λ
␈ε%2
␈β
W␈↓ ∧↔␈ε"0␈ε6␈α
∀␈↓ ∧a␈ε(v␈↓ ∧t␈ε(∞␈↓ ¬#␈ε"<␈↓ ¬Q␈ε(∞␈↓ ¬␈␈ε6∀␈ε"␈α
(␈↓ ε9␈ε"2␈↓ π	␈ε")␈↓ π0␈ε"=␈↓ π↑␈ε"2␈↓ λS␈ε",
␈β
h␈↓ ¬ε␈ε+k␈↓ ¬c␈ε+k
␈β∞→␈↓ ↓H␈ε"and
␈β∞7␈↓ ε"␈ε-k␈↓ ε0␈ε'+␈α↓1␈↓ λ¬␈ε-k␈↓ λ∪␈ε'+1␈↓ 	←␈ε-k␈↓ 	m␈ε'+1
␈β∞<␈↓ β1␈ε%2␈↓ ¬v␈ε9␈␈↓ ε∪␈ε%2␈↓ εW␈ε9␈␈ε%3␈↓ πX␈ε9␈␈↓ πu␈ε%2␈↓ λ:␈ε9␈␈ε%␈α␈1␈↓ 	2␈ε9␈␈↓ 	P␈ε%2
␈β∞D␈↓ αU␈ε"0␈ε6␈α
∀␈↓ β∨␈ε(z␈↓ βB␈ε"(␈↓ βN␈ε(v␈↓ βi␈ε6␈␈↓ ∧∃␈ε(V␈↓ ∧=␈ε")␈αλ+␈↓ ∧⎇␈ε(r␈↓ ¬_␈ε"<␈α
4(␈↓ ¬d␈ε"2␈↓ πε␈ε")␈αλ+␈↓ πF␈ε"2␈↓ λr␈ε"=␈↓ 	 ␈ε"2␈↓ 
∃␈ε",
␈β∞P␈↓ ∧+␈ε+k
␈β∂␈↓ βW␈ε-k␈↓ βe␈ε'+1
␈β∂¬␈↓ β*␈ε9␈␈↓ βH␈ε%2
␈β∂␈↓ ↓H␈ε"so␈ε6␈α∞j␈↓ α␈ε(∞␈↓ αN␈ε6j␈α∞∀␈↓ β_␈ε"2␈↓ ∧
␈ε".␈α↔W␈α⎇e␈α∂m␈α␈ust␈α∞still␈α∂v␈α␈erify␈α∞the␈α∞|rst␈α∂inequalit␈α␈y␈α∞of␈α∞(44);␈α⊂to␈α∞sh␈α↓o␈α␈w
␈β∂_␈↓ α∂␈ε+k␈↓ α ␈ε%+␈α␈1
␈β∂2␈↓ πX␈ε%1
␈β∂6␈↓ ↓H␈ε"that␈↓ α↔␈ε(z␈↓ αs␈ε6∀␈ε"␈α2,␈α∞there␈α
are␈α∞three␈α
cases:␈α≤(a)␈↓ εp␈ε(V␈↓ π$␈ε"=␈↓ πl␈ε";␈α∞then␈↓ λW␈ε(z␈↓ 	3␈ε"=␈α2.␈α≤(b)␈↓ 
T␈ε(V␈↓ λ␈ε6≤
␈β∂C␈↓ α(␈ε+k␈↓ α9␈ε%+␈α␈1␈↓ πε␈ε+k␈↓ λh␈ε+k␈↓ λy␈ε%+␈α␈1␈↓ 
j␈ε+k
␈β∂G␈↓ πX␈ε%2
␈β∂K␈↓ πX␈∧∂KπXα⊂
␈β∂↑␈↓ πs␈ε-k␈↓ λ↓␈ε'+␈α↓1
␈β∂c␈↓ ¬⎇␈ε%2␈↓ πF␈ε9␈␈↓ πd␈ε%2␈↓ λ(␈ε9␈␈ε%1
␈β∂d␈↓ ↓L␈ε%1␈↓ 
=␈ε%1
␈β∂i␈↓ ↓i␈ε"=␈↓ α↔␈ε(V␈↓ αl␈ε";␈αthen␈↓ βS␈ε(z␈↓ ∧␈ε"=␈α
2,␈αso␈α2␈↓ ¬∀␈ε(z␈↓ ¬?␈ε6␈␈↓ ¬j␈ε(z␈↓ ε∂␈ε(V␈↓ εA␈ε6∀␈ε"␈α
2␈ε6␈αλ␈␈↓ π4␈ε"2␈↓ λV␈ε".␈α→(c)␈↓ 	-␈ε(V␈↓ 
␈ε6≤␈↓ 
Q␈ε";␈αthen
␈β∂u␈↓ α-␈ε+k␈↓ α=␈ε9␈␈ε%1␈↓ βd␈ε+k␈↓ ¬%␈ε+k␈↓ ε%␈ε+k␈↓ 	B␈ε+k␈↓ 	S␈ε9␈␈ε%1
␈β∂y␈↓ ¬⎇␈ε+k
␈β∂z␈↓ ↓L␈ε%2␈↓ 
=␈ε%2
␈β∂⎇␈↓ ↓L␈∧∂⎇↓Lα⊂␈↓ 
=␈∧∂⎇
=α⊂
␈β⊂⊂␈↓ ¬E␈ε-k␈↓ ¬S␈ε'+␈α↓1
␈β⊂∀␈↓ ¬→␈ε9␈␈↓ ¬6␈ε%2
␈β⊂≠␈↓ ↓H␈ε(z␈↓ α"␈ε"=␈α
1/␈↓ αt␈ε(v␈↓ β∂␈ε6␈␈↓ β;␈ε(∞␈↓ ∧∪␈ε"<␈α
2␈ε6␈αλ␈␈↓ ¬π␈ε"2␈↓ εε␈ε6∀␈ε"␈α
2,␈αsince␈↓ π4␈ε(k␈↓ πR␈ε">␈α
0.
␈β⊂'␈↓ ↓Y␈ε+k␈↓ ↓i␈ε%+1␈↓ βJ␈ε+k␈↓ βZ␈ε%+1
␈β⊂F␈↓ α␈ε"The␈αrunning␈αtime␈αof␈αAlgorithm␈αR␈αis␈αbounded␈αby
␈β⊃⊃␈↓ π6␈ε%1
␈β⊃∃␈↓ β-␈ε"2␈↓ β?␈ε(T␈↓ βY␈ε"(4␈ε(n␈ε")␈αλ+␈αλ2␈↓ ∧←␈ε(T␈↓ ∧y␈ε"(2␈ε(n␈ε"␈α␈)␈αλ+␈αλ2␈↓ ¬}␈ε(T␈↓ ε_␈ε"(␈ε(n␈ε")␈αλ+␈αλ2␈↓ π␈ε(T␈↓ π&␈ε"(␈↓ πI␈ε(n␈ε")␈αλ+␈↓ λ∨␈ε6↓␈αε↓␈αε↓␈↓ λQ␈ε"+␈↓ λ⎇␈ε(O␈↓ 	→␈ε"(␈ε(n␈ε")
␈β⊃&␈↓ π6␈ε%2
␈β⊃*␈↓ π6␈∧⊃*π6α⊂
␈β∪(

␈β↓U␈↓ ↓H␈ε"4.3.3␈↓ 
)␈ε"?␈↓ 
v␈ε"297
␈β↓\␈↓ εF␈ε∞H␈α↓O␈α␈W␈α
F␈α|AST␈α
CA␈α↓N␈α	W␈α↓E␈α
MUL␈α}TI␈α↓P␈α␈L␈α}Y
␈βα"␈↓ ↓H␈ε"steps,␈α
where␈↓ β⊂␈ε(T␈↓ β*␈ε"(␈ε(n␈ε"␈α␈)␈α
is␈α
an␈α
upper␈α
bound␈α
on␈α	the␈α
time␈α
needed␈α
to␈α
do␈α
a␈α
m␈α␈ultiplication␈α	of
␈βαM␈↓ ↓H␈ε(n␈ε"␈α␈-bit␈α
n␈α␈um␈α␈bers.␈α∂If␈↓ β]␈ε(T␈↓ βw␈ε"(␈ε(n␈ε"␈α␈)␈α	has␈α
the␈α	form␈ε(␈α	n␈↓ ε∂␈ε(f␈↓ ε$␈ε"(␈ε(n␈ε")␈α	for␈α	some␈α	m␈α↓on␈α↓otonically␈α	n␈α↓ondecreasing
␈βαy␈↓ ↓H␈ε"function␈↓ αV␈ε(f␈↓ αk␈ε"(␈ε(n␈ε"),␈αw␈α␈e␈αha␈α␈v␈α␈e
␈ββJ␈↓ ∧␈ε(T␈↓ ∧&␈ε"(4␈ε(n␈ε")␈αλ+␈↓ ¬~␈ε(T␈↓ ¬3␈ε"(2␈ε(n␈ε")␈αλ+␈↓ ε'␈ε(T␈↓ εA␈ε"(␈ε(n␈ε")␈αλ+␈↓ π#␈ε6↓␈αε↓␈αε↓␈↓ πW␈ε"<␈↓ λ¬␈ε(T␈↓ λ≡␈ε"(8␈ε(n␈ε"),
␈β∧≠␈↓ ↓H␈ε"so␈α
division␈α
can␈α
be␈αdone␈α
with␈α
a␈α
speed␈α
comparable␈αto␈α
that␈α
of␈α
m␈α␈ultiplication␈α
except
␈β∧F␈↓ ↓H␈ε"for␈αa␈αconstan␈α␈t␈αfactor.
␈β∧r␈↓ α␈ε"R.␈αP.␈↓ αk␈ε"Bren␈α␈t␈αhas␈αsh␈α↓o␈α␈wn␈αthat␈αfunctions␈αsuch␈αas␈↓ πb␈ε"log␈↓ λ⊗␈ε(x␈ε",␈↓ λ?␈ε"e␈↓ λO␈ε"x␈↓ λc␈ε"p␈↓ λ⎇␈ε(x␈ε",␈αand␈↓ 	m␈ε"arctan␈↓ 
W␈ε(x␈ε"␈αcan
␈β∧}␈↓ ε#␈ε↓␈␈↓ πW␈ε↓↓
␈β¬≥␈↓ ↓H␈ε"be␈αev␈α}aluated␈α
to␈ε(␈α
n␈ε"␈αsigni|can␈α␈t␈α
bits␈αin␈↓ εε␈ε(O␈↓ ε1␈ε(M␈↓ εY␈ε"(␈ε(n␈ε")␈↓ π
␈ε"log␈↓ πA␈ε(n␈↓ πq␈ε"steps,␈α
if␈α
it␈α
tak␈α␈es␈↓ 	{␈ε(M␈↓ 
$␈ε"(␈ε(n␈ε")␈αunits
␈β¬H␈↓ ↓H␈ε"of␈αtime␈αto␈αm␈α␈ultiply␈ε(␈αn␈ε"␈α␈-bit␈αn␈α␈um␈α␈bers␈α[␈ε/JA␈α␈CM␈ε2␈α23␈ε"␈α(1976),␈α242↑251].
␈βεε␈↓ ↓H␈ε2E.␈α	An␈α	ev␈α␈en␈α	faster␈α
m␈α␈ultiplication␈α	meth␈α↓od.␈ε"␈α∂It␈α	is␈α
natural␈α	to␈α	w␈α␈onder␈α	if␈α	m␈α␈ultiplication
␈βε2␈↓ ↓H␈ε"of␈ε(␈αn␈ε"␈α␈-bit␈αn␈α␈um␈α␈bers␈αcan␈αbe␈αaccomplished␈αin␈αjust␈ε(␈αn␈ε"␈αsteps.␈α∂W␈α⎇e␈αha␈α␈v␈α␈e␈αcome␈αfrom␈αorder
␈βεW␈↓ ↓]␈ε%2
␈βε]␈↓ ↓H␈ε(n␈↓ ↓|␈ε"do␈α␈wn␈α∞to␈α
order␈ε(␈α∞n␈ε",␈α∞so␈α
perhaps␈α∞w␈α␈e␈α∞can␈α
squeeze␈α∞the␈α∞time␈α
do␈α␈wn␈α∞to␈α∞the␈α
absolute
␈βπλ␈↓ ↓H␈ε"minim␈α␈um.␈α∂In␈α
fact,␈α
it␈α
is␈α
actually␈α
possible␈α
to␈α
output␈α
the␈α
answ␈α␈er␈α
as␈α
fast␈α
as␈α
w␈α␈e␈α	input
␈βπ3␈↓ ↓H␈ε"the␈α∞digits,␈α∂if␈α∞w␈α␈e␈α∂lea␈α␈v␈α␈e␈α∞the␈α∂domain␈α∞of␈α∞con␈α␈v␈α␈en␈α␈tional␈α∂computer␈α∞programming␈α∞and
␈βπ↑␈↓ ↓H␈ε"allo␈α␈w␈α	ourselv␈α␈es␈α
to␈α	build␈α
a␈α	computer␈α
that␈α
has␈α	an␈α
unlimited␈α	n␈α␈um␈α␈ber␈α
of␈α	componen␈α␈ts
␈βλ
␈↓ ↓H␈ε"all␈αacting␈αat␈αonce.
␈βλ5␈↓ α␈ε"A␈↓ α6␈ε/linear␈α∂iterativ␈α␈e␈α⊂arra␈α␈y␈ε"␈α∂of␈↓ ¬>␈ε"automata␈α∂is␈α⊂a␈α∂set␈α⊂of␈α∂devices␈↓ 	∀␈ε(M␈↓ 	I␈ε",␈↓ 	c␈ε(M␈↓ 
→␈ε",␈↓ 
3␈ε(M␈↓ 
h␈ε",␈↓ α␈ε".␈αε.␈αε.
␈βλA␈↓ 	8␈ε%1␈↓ 
λ␈ε%2␈↓ 
W␈ε%3
␈βλ`␈↓ ↓H␈ε"that␈α
can␈α
each␈α
be␈α
in␈α
a␈α
|nite␈α
set␈α
of␈α
\states"␈α
at␈α
each␈α
step␈α
of␈α
a␈α
computation.␈α∪The
␈β	␈↓ ↓H␈ε"machines␈↓ αd␈ε(M␈↓ β→␈ε",␈↓ β0␈ε(M␈↓ βe␈ε",␈↓ β{␈ε".␈αε.␈αε.␈↓ ∧2␈ε"all␈αha␈α␈v␈α␈e␈ε/␈α
iden␈α␈tical␈ε"␈αcircuitry,␈αand␈α
their␈αstate␈↓ 	Z␈ε"at␈αtime␈ε(␈α
t␈ε"␈αλ+␈αλ1
␈β	_␈↓ βλ␈ε%2␈↓ βT␈ε%3
␈β	6␈↓ ↓H␈ε"is␈α
a␈α∞function␈α
of␈α∞their␈α
o␈α␈wn␈α∞state␈α
at␈α∞time␈ε(␈α
t␈ε"␈α∞as␈α∞w␈α␈ell␈α
as␈α∞the␈α
states␈α∞of␈α
their␈α∞le$␈α
and
␈β	b␈↓ ↓H␈ε"righ␈α␈t␈αneigh␈α␈bors␈αat␈αtime␈ε(␈αt␈ε".␈α⊃The␈α|rst␈αmachine␈↓ πλ␈ε(M␈↓ πI␈ε"is␈αsligh␈α␈tly␈αdi{eren␈α␈t:␈αits␈αstate␈αat
␈β	n␈↓ π,␈ε%1
␈β

␈↓ ↓H␈ε"time␈ε(␈αt␈ε"␈α	+␈α	1␈αis␈α
a␈α
function␈αof␈α
its␈α
o␈α␈wn␈α
state␈αand␈α
that␈α
of␈↓ λ∂␈ε(M␈↓ λE␈ε",␈αat␈α
time␈ε(␈α
t␈ε",␈α
and␈α
also␈αof
␈β
→␈↓ λ4␈ε%2
␈β
8␈↓ ↓H␈ε"the␈ε/␈αinput␈ε"␈α
at␈αtime␈ε(␈α
t␈ε".␈α∩The␈ε/␈αoutput␈ε"␈α
of␈α
a␈αlinear␈α
iterativ␈α␈e␈αarra␈α␈y␈α
is␈αa␈α
function␈αde|ned
␈β
c␈↓ ↓H␈ε"on␈αthe␈αstates␈αof␈↓ βH␈ε(M␈↓ β⎇␈ε".
␈β
p␈↓ βl␈ε%1
␈β∞␈↓ α␈ε"Let␈ε(␈α∞u␈ε"␈α
=␈α∞(␈↓ β0␈ε(u␈↓ ∧␈ε".␈αε.␈αε.␈↓ ∧;␈ε(u␈↓ ∧a␈ε(u␈↓ ¬ε␈ε")␈↓ ¬#␈ε",␈↓ ¬<␈ε(v␈↓ ¬\␈ε"=␈α
(␈↓ ε→␈ε(v␈↓ εr␈ε".␈αε.␈αε.␈↓ π"␈ε(v␈↓ πD␈ε(v␈↓ πg␈ε")␈↓ λβ␈ε",␈α∂and␈↓ λd␈ε(q␈↓ 	∧␈ε"=␈α∞(␈↓ 	B␈ε(q␈↓ 
≠␈ε".␈αε.␈αε.␈↓ 
K␈ε(q␈↓ 
m␈ε(q␈↓ ⊂␈ε")
␈β≠␈↓ βD␈ε+n␈ε9␈␈ε%1␈↓ ∧P␈ε%1␈↓ ∧v␈ε%0␈↓ ¬∩␈ε%2␈↓ ε+␈ε+n␈ε9␈␈ε%␈α␈1␈↓ π3␈ε%1␈↓ πV␈ε%0␈↓ πs␈ε%2␈↓ 	T␈ε+n␈ε9␈α␈␈␈ε%1␈↓ 
\␈ε%1␈↓ 
␈␈ε%0␈↓ ≤␈ε%2
␈β:␈↓ ↓H␈ε"be␈α
binary␈α
n␈α␈um␈α␈bers,␈α
and␈α
let␈ε(␈αu␈↓ ¬λ␈ε(v␈↓ ¬∨␈ε"+␈↓ ¬H␈ε(q␈↓ ¬e␈ε"=␈↓ ε∪␈ε(w␈↓ ε8␈ε"=␈α
(␈↓ εr␈ε(w␈↓ πa␈ε".␈αε.␈αε.␈↓ λ⊃␈ε(w␈↓ λ<␈ε(w␈↓ λf␈ε")␈↓ 	β␈ε".␈α∂It␈α
is␈α
a␈α
remark␈α}able
␈βF␈↓ π␈ε%2␈ε+n␈ε9␈␈ε%1␈↓ λ+␈ε%1␈↓ λU␈ε%0␈↓ λr␈ε%2
␈βe␈↓ ↓H␈ε"fact␈αthat␈αa␈αlinear␈αiterativ␈α␈e␈αarra␈α␈y␈αcan␈αbe␈αconstructed,␈αindependen␈α␈t␈αof␈ε(␈αn␈ε",␈αthat␈αwill
␈β⊂␈↓ ↓H␈ε"output␈↓ α>␈ε(w␈↓ αi␈ε",␈↓ β␈ε(w␈↓ β*␈ε",␈↓ βA␈ε(w␈↓ βk␈ε",␈↓ ∧α␈ε".␈αε.␈αε.␈↓ ∧9␈ε"at␈αtimes␈α
1,␈α
2,␈α
3,␈↓ εA␈ε".␈αε.␈αε.␈↓ εq␈ε",␈α
if␈αit␈α
is␈α
giv␈α␈en␈α
the␈αinputs␈α
(␈↓ 
␈ε(u␈↓ 
2␈ε",␈↓ 
B␈ε(v␈↓ 
d␈ε",␈↓ 
t␈ε(q␈↓ ⊗␈ε"),
␈β≤␈↓ αX␈ε%0␈↓ β→␈ε%1␈↓ βZ␈ε%2␈↓ 
!␈ε%0␈↓ 
S␈ε%0␈↓ ε␈ε%0
␈β;␈↓ ↓H␈ε"(␈↓ ↓T␈ε(u␈↓ ↓y␈ε",␈↓ α	␈ε(v␈↓ α+␈ε",␈↓ α;␈ε(q␈↓ α↑␈ε"),␈α(␈↓ β␈ε(u␈↓ β2␈ε",␈↓ βB␈ε(v␈↓ βd␈ε",␈↓ βt␈ε(q␈↓ ∧⊗␈ε"),␈↓ ∧8␈ε".␈αε.␈αε.␈↓ ∧n␈ε"at␈αtimes␈α0,␈α1,␈α
2,␈↓ εs␈ε".␈αε.␈αε.␈↓ π)␈ε".
␈βH␈↓ ↓h␈ε%1␈↓ α≠␈ε%1␈↓ αM␈ε%1␈↓ β!␈ε%2␈↓ βS␈ε%2␈↓ ∧ε␈ε%2
␈βf␈↓ α␈ε"W␈α⎇e␈α∞can␈α∂state␈α∞this␈α∞phen␈α↓omen␈α↓on␈α∞in␈α∂the␈α∞language␈α∞of␈α∞computer␈α∂hardw␈α␈are,␈α∞by
␈β
∩␈↓ ↓H␈ε"sa␈α␈ying␈α⊃that␈α⊂it␈α⊃is␈α⊃possible␈α⊃to␈α⊃design␈α⊃a␈α⊃single␈α⊃\␈↓ π,␈ε"in␈α␈tegrated␈α⊃circuit␈α⊃m␈α↓odule"␈α⊂with
␈β
=␈↓ ↓H␈ε"the␈α
follo␈α␈wing␈α
propert␈α␈y:␈αIf␈α
w␈α␈e␈αwire␈α
together␈α
su}cien␈α␈tly␈α
man␈α␈y␈αof␈α
these␈α
devices␈α
in␈α
a
␈β
h␈↓ ↓H␈ε"straigh␈α␈t␈α	line,␈α
with␈α
each␈α
m␈α↓odule␈α	comm␈α␈unicating␈α
only␈α	with␈α
its␈α
le$␈α	and␈α
righ␈α␈t␈α	neigh-
␈β∞∪␈↓ ↓H␈ε"bors,␈αthe␈αresulting␈αcircuitry␈αwill␈αproduce␈αthe␈α2␈ε(n␈ε"␈α␈-bit␈αproduct␈αof␈ε(␈αn␈ε"-bit␈αn␈α␈um␈α␈bers␈αin
␈β∞>␈↓ ↓H␈ε"exactly␈α2␈ε(n␈ε"␈αclock␈αpulses.
␈β∞j␈↓ α␈ε"Here␈α⊃is␈α⊃the␈α⊃basic␈α⊂idea␈α⊃behind␈α⊃this␈α⊃construction:␈α⊗A␈α␈t␈α⊃time␈α⊂0,␈α∪machine␈↓ 
w␈ε(M
␈β∞v␈↓ ≤␈ε%1
␈β∂∃␈↓ ↓H␈ε"senses␈α∞(␈↓ α@␈ε(u␈↓ αf␈ε",␈↓ αv␈ε(v␈↓ β_␈ε",␈↓ β(␈ε(q␈↓ βK␈ε")␈α∂and␈α∞it␈α∂therefore␈α∂is␈α∂able␈α∞to␈α∂output␈α∂(␈↓ λ→␈ε(u␈↓ λ>␈ε(v␈↓ λk␈ε"+␈↓ 	_␈ε(q␈↓ 	;␈ε")␈↓ 	M␈ε"mod␈↓ 
↔␈ε"2␈α∂at␈α∞time
␈β∂!␈↓ αU␈ε%0␈↓ βπ␈ε%0␈↓ β:␈ε%0␈↓ λ.␈ε%0␈↓ λP␈ε%0␈↓ 	*␈ε%0
␈β∂@␈↓ ↓H␈ε"1.␈α_Then␈α∞it␈α∂sees␈α∂(␈↓ βZ␈ε(u␈↓ β␈␈ε",␈↓ ∧∂␈ε(v␈↓ ∧2␈ε",␈↓ ∧B␈ε(q␈↓ ∧d␈ε")␈α∂and␈α∂it␈α∞can␈α∂output␈α∂(␈↓ π8␈ε(u␈↓ π]␈ε(v␈↓ λ	␈ε"+␈↓ λ7␈ε(u␈↓ λ]␈ε(v␈↓ 		␈ε"+␈↓ 	7␈ε(q␈↓ 	c␈ε"+␈↓ 
⊃␈ε(k␈↓ 
4␈ε")␈↓ 
F␈ε"mod␈↓ ⊂␈ε"2,
␈β∂L␈↓ βo␈ε%1␈↓ ∧!␈ε%1␈↓ ∧S␈ε%1␈↓ πL␈ε%0␈↓ πo␈ε%1␈↓ λL␈ε%1␈↓ λn␈ε%0␈↓ 	H␈ε%1␈↓ 
$␈ε%1
␈β∂k␈↓ ↓H␈ε"where␈↓ α0␈ε(k␈↓ α←␈ε"is␈αthe␈α\carry"␈αle$␈αo␈α␈v␈α␈er␈αfrom␈αthe␈αprevious␈αstep,␈αat␈αtime␈α2.␈α⊂Next␈αit␈αsees
␈β∂x␈↓ αC␈ε%1
␈β⊂⊗␈↓ ↓H␈ε"(␈↓ ↓T␈ε(u␈↓ ↓y␈ε",␈↓ α	␈ε(v␈↓ α+␈ε",␈↓ α;␈ε(q␈↓ α↑␈ε")␈αand␈αoutputs␈α(␈↓ ∧K␈ε(u␈↓ ∧p␈ε(v␈↓ ¬→␈ε"+␈↓ ¬D␈ε(u␈↓ ¬j␈ε(v␈↓ ε∪␈ε"+␈↓ ε>␈ε(u␈↓ εd␈ε(v␈↓ π
␈ε"+␈↓ π8␈ε(q␈↓ πa␈ε"+␈↓ λ␈ε(k␈↓ λ0␈ε")␈↓ λB␈ε"mod␈↓ 	␈ε"2;␈αfurtherm␈α↓ore,␈αits
␈β⊂#␈↓ ↓h␈ε%2␈↓ α≠␈ε%2␈↓ αM␈ε%2␈↓ ∧←␈ε%0␈↓ ¬α␈ε%2␈↓ ¬Y␈ε%1␈↓ ¬{␈ε%1␈↓ εS␈ε%2␈↓ εu␈ε%0␈↓ πJ␈ε%2␈↓ λ∨␈ε%2
␈β⊂B␈↓ ↓H␈ε"state␈α∂h␈α↓olds␈α∂the␈α∂v␈α}alues␈α∂of␈↓ ∧a␈ε(u␈↓ ¬∃␈ε"and␈↓ ¬↑␈ε(v␈↓ ε∂␈ε"so␈α∂that␈α∂machine␈↓ λ ␈ε(M␈↓ λd␈ε"will␈α∂be␈α∂able␈α∂to␈α∂sense
␈β⊂N␈↓ ∧u␈ε%2␈↓ ¬p␈ε%2␈↓ λE␈ε%2
␈β⊂m␈↓ ↓H␈ε"these␈α⊂v␈α}alues␈α⊂at␈α⊂time␈α⊂3,␈α⊃and␈↓ ¬∀␈ε(M␈↓ ¬Z␈ε"will␈α⊂be␈α⊂able␈α⊂to␈α⊂compute␈↓ λl␈ε(u␈↓ 	∩␈ε(v␈↓ 	D␈ε"for␈α⊂the␈α⊂bene|t
␈β⊂y␈↓ ¬9␈ε%2␈↓ 	↓␈ε%2␈↓ 	#␈ε%2
␈β⊃_␈↓ ↓H␈ε"of␈↓ ↓w␈ε(M␈↓ α=␈ε"at␈α∩time␈α⊃4.␈α!Machine␈↓ ¬_␈ε(M␈↓ ¬↑␈ε"essen␈α␈tially␈α∩arranges␈α⊃to␈α∩start␈↓ 	2␈ε(M␈↓ 	x␈ε"m␈α␈ultiplying
␈β⊃$␈↓ α≠␈ε%1␈↓ ¬<␈ε%1␈↓ 	V␈ε%2
␈β∪(

␈β↓U␈↓ ↓H␈ε"298␈↓ 
b␈ε"4.3.3
␈β↓\␈↓ α=␈ε∞ARITH␈α↓MET␈α↓IC
␈βα≠␈↓ ↓H␈ε"(T␈α⎇able␈α1␈αwill␈αgo␈αon␈αthis␈αpage,␈αit's␈αbeing␈αset␈αseparately)
␈β∪(

␈β↓U␈↓ ↓H␈ε"4.3.3␈↓ 
)␈ε"?␈↓ 
v␈ε"299
␈β↓\␈↓ εF␈ε∞H␈α↓O␈α␈W␈α
F␈α|AST␈α
CA␈α↓N␈α	W␈α↓E␈α
MUL␈α}TI␈α↓P␈α␈L␈α}Y
␈βα"␈↓ ↓H␈ε"the␈α∞sequence␈α∂(␈↓ β+␈ε(u␈↓ βP␈ε",␈↓ β`␈ε(v␈↓ ∧β␈ε"),␈α∂(␈↓ ∧4␈ε(u␈↓ ∧Z␈ε",␈↓ ∧j␈ε(v␈↓ ¬␈ε"),␈↓ ¬1␈ε".␈αε.␈αε.␈↓ ¬a␈ε",␈α∂and␈↓ εC␈ε(M␈↓ ππ␈ε"will␈α∞ultimately␈α∂giv␈α␈e␈↓ 	J␈ε(M␈↓ 

␈ε"the␈α∂job␈α∞of
␈βα/␈↓ β@␈ε%2␈↓ βr␈ε%2␈↓ ∧I␈ε%3␈↓ ∧{␈ε%3␈↓ εg␈ε%2␈↓ 	n␈ε%3
␈βαM␈↓ ↓H␈ε"m␈α␈ultiplying␈α
(␈↓ β∃␈ε(u␈↓ β;␈ε",␈↓ βK␈ε(v␈↓ βm␈ε"),␈α∞(␈↓ ∧≥␈ε(u␈↓ ∧B␈ε",␈↓ ∧R␈ε(v␈↓ ∧u␈ε"),␈α∞etc.␈α∀F␈α⎇ortunately,␈α∞things␈α∞just␈α
w␈α␈ork␈α∞out␈α
so␈α∞that␈α
n␈α↓o
␈βαZ␈↓ β*␈ε%4␈↓ β\␈ε%4␈↓ ∧2␈ε%5␈↓ ∧d␈ε%5
␈βαy␈↓ ↓H␈ε"time␈α
is␈αlost.␈α∂The␈αreader␈α
will␈α|nd␈α
it␈αin␈α␈teresting␈α
to␈αdeduce␈α
further␈α
details␈αfrom␈α
the
␈ββ$␈↓ ↓H␈ε"formal␈αdescription␈αthat␈αfollo␈α␈ws.
␈ββI␈↓ ∧n␈ε%11
␈ββO␈↓ α␈ε"Each␈αautomaton␈αhas␈↓ ∧\␈ε"2␈↓ ¬~␈ε"states
␈β∧"␈↓ ∧L␈ε"(␈ε(c␈ε",␈↓ ∧w␈ε(x␈↓ ¬≤␈ε",␈↓ ¬,␈ε(y␈↓ ¬O␈ε",␈↓ ¬←␈ε(x␈↓ εβ␈ε",␈↓ ε∪␈ε(y␈↓ ε6␈ε",␈ε(␈αεx␈ε",␈↓ εj␈ε(y␈↓ ε⎇␈ε",␈↓ π
␈ε(z␈↓ π.␈ε",␈↓ π>␈ε(z␈↓ π`␈ε",␈↓ πp␈ε(z␈↓ λ∩␈ε"),
␈β∧/␈↓ ¬␈ε%0␈↓ ¬>␈ε%0␈↓ ¬s␈ε%1␈↓ ε%␈ε%1␈↓ π≡␈ε%2␈↓ πO␈ε%1␈↓ λ↓␈ε%0
␈β∧u␈↓ ↓H␈ε"where␈α∂0␈ε6␈α∂∀␈ε(␈α∂c␈ε"␈α∂<␈α∂4␈α∂and␈α∂each␈α∂of␈α∂the␈ε(␈α∂x␈ε"'s,␈↓ εK␈ε(y␈↓ ε↑␈ε"'s,␈α⊂and␈↓ πY␈ε(z␈↓ πk␈ε"'s␈α∂is␈α∂either␈α∂0␈α∂or␈α∂1.␈α→Initially,
␈β¬!␈↓ ↓H␈ε"all␈αdevices␈α
are␈α
in␈αstate␈α
(0,␈αε0,␈αε0,␈αε0,␈αε0,␈αε0,␈αε0,␈αε0,␈αε0,␈αε0).␈α∩Suppose␈αthat␈α
a␈α
machine␈↓ 
6␈ε(M␈↓ 
j␈ε",␈αfor
␈β¬-␈↓ 
Z␈ε+j
␈β¬L␈↓ ↓H␈ε(j␈↓ ↓d␈ε">␈α1,␈α∞is␈α
in␈α
state␈α
(␈ε(c␈ε",␈↓ ∧∩␈ε(x␈↓ ∧7␈ε",␈↓ ∧G␈ε(y␈↓ ∧i␈ε",␈↓ ∧y␈ε(x␈↓ ¬≡␈ε",␈↓ ¬.␈ε(y␈↓ ¬P␈ε",␈ε(␈αεx␈ε",␈↓ ε∧␈ε(y␈↓ ε↔␈ε",␈↓ ε'␈ε(z␈↓ εI␈ε",␈↓ εY␈ε(z␈↓ ε{␈ε",␈↓ π␈ε(z␈↓ π,␈ε")␈α∞at␈α
time␈ε(␈α
t␈ε",␈α
and␈α
its␈α
le$␈α
neigh␈α␈bor
␈β¬X␈↓ ∧&␈ε%0␈↓ ∧X␈ε%0␈↓ ¬
␈ε%1␈↓ ¬?␈ε%1␈↓ ε8␈ε%2␈↓ εj␈ε%1␈↓ π≤␈ε%0
␈β¬q␈↓ βn␈ε+l␈↓ ∧≡␈ε+l␈↓ ∧Q␈ε+l␈↓ ¬ε␈ε+l␈↓ ¬:␈ε+l␈↓ ¬o␈ε+l␈↓ ε≥␈ε+l␈↓ εK␈ε+l␈↓ ε}␈ε+l␈↓ π2␈ε+l
␈β¬w␈↓ ↓H␈ε(M␈↓ α2␈ε"is␈αin␈α
state␈α
(␈↓ β←␈ε(c␈↓ βz␈ε",␈↓ ∧
␈ε(x␈↓ ∧.␈ε",␈↓ ∧>␈ε(y␈↓ ∧b␈ε",␈↓ ∧r␈ε(x␈↓ ¬↔␈ε",␈↓ ¬'␈ε(y␈↓ ¬K␈ε",␈↓ ¬[␈ε(x␈↓ ¬z␈ε",␈↓ ε
␈ε(y␈↓ ε(␈ε",␈↓ ε8␈ε(z␈↓ ε[␈ε",␈↓ εk␈ε(z␈↓ π∂␈ε",␈↓ π∨␈ε(z␈↓ πC␈ε")␈α
while␈α
its␈αrigh␈α␈t␈α
neigh␈α␈bor␈↓ 
L␈ε(M
␈βεβ␈↓ ↓l␈ε+j␈↓ ↓y␈ε9␈␈ε%1␈↓ 
p␈ε+j␈↓ 
}␈ε%+1
␈βελ␈↓ ∧≡␈ε%0␈↓ ∧Q␈ε%0␈↓ ¬ε␈ε%1␈↓ ¬:␈ε%1␈↓ εK␈ε%2␈↓ ε}␈ε%1␈↓ π2␈ε%0
␈βε≤␈↓ ββ␈ε+r␈↓ β6␈ε+r␈↓ βj␈ε+r␈↓ ∧∨␈ε+r␈↓ ∧R␈ε+r␈↓ ¬π␈ε+r␈↓ ¬:␈ε+r␈↓ ¬l␈ε+r␈↓ ε∨␈ε+r␈↓ εS␈ε+r
␈βε"␈↓ ↓H␈ε"is␈α
in␈α
state␈α
(␈↓ αt␈ε(c␈↓ β∩␈ε",␈↓ β"␈ε(x␈↓ βG␈ε",␈↓ βW␈ε(y␈↓ β{␈ε",␈↓ ∧␈ε(x␈↓ ∧0␈ε",␈↓ ∧@␈ε(y␈↓ ∧c␈ε",␈↓ ∧s␈ε(x␈↓ ¬↔␈ε",␈↓ ¬'␈ε(y␈↓ ¬I␈ε",␈↓ ¬Y␈ε(z␈↓ ¬|␈ε",␈↓ ε␈ε(z␈↓ ε0␈ε",␈↓ ε@␈ε(z␈↓ εd␈ε")␈α
at␈α
that␈α
time.␈α∂Then␈α
machine␈↓ 
7␈ε(M␈↓ 
t␈ε"will
␈βε/␈↓ 
[␈ε+j
␈βε3␈↓ β6␈ε%0␈↓ βj␈ε%0␈↓ ∧∨␈ε%1␈↓ ∧R␈ε%1␈↓ ¬l␈ε%2␈↓ ε∨␈ε%1␈↓ εS␈ε%0
␈βεG␈↓ β4␈ε90␈↓ βb␈ε90␈↓ ∧∃␈ε90␈↓ ∧J␈ε90␈↓ ∧}␈ε90␈↓ ¬2␈ε90␈↓ ¬←␈ε90␈↓ ε␈ε90␈↓ ε?␈ε90␈↓ εr␈ε90
␈βεM␈↓ ↓H␈ε"go␈αin␈α␈to␈αstate␈α(␈↓ β%␈ε(c␈↓ β>␈ε",␈↓ βN␈ε(x␈↓ βr␈ε",␈↓ ∧α␈ε(y␈↓ ∧&␈ε",␈↓ ∧6␈ε(x␈↓ ∧[␈ε",␈↓ ∧k␈ε(y␈↓ ¬∞␈ε",␈↓ ¬≡␈ε(x␈↓ ¬<␈ε",␈↓ ¬L␈ε(y␈↓ ¬i␈ε",␈↓ ¬y␈ε(z␈↓ ε≤␈ε",␈↓ ε,␈ε(z␈↓ εP␈ε",␈↓ ε`␈ε(z␈↓ πβ␈ε")␈αat␈αtime␈ε(␈αt␈ε"␈αλ+␈αλ1,␈αwhere
␈βε↑␈↓ βb␈ε%0␈↓ ∧∃␈ε%0␈↓ ∧J␈ε%1␈↓ ∧}␈ε%1␈↓ ε␈ε%2␈↓ ε?␈ε%1␈↓ εr␈ε%0
␈βπ≠␈↓ β⊃␈ε90␈↓ ε&␈ε+l
␈βπ!␈↓ βα␈ε(c␈↓ β%␈ε"=␈↓ βS␈ε"min␈↓ ∧∂␈ε"(␈ε(c␈ε"␈αλ+␈αλ1,␈αε3)␈↓ ¬t␈ε"if␈↓ ε⊗␈ε(c␈↓ ε;␈ε"=␈α
3,␈↓ πM␈ε"0␈↓ λTotherwise;
␈βπN␈↓ β?␈ε90␈↓ βr␈ε90␈↓ ∧g␈ε+l␈↓ ¬∃␈ε+l
␈βπT␈↓ β∨␈ε"(␈↓ β+␈ε(x␈↓ βO␈ε",␈↓ β←␈ε(y␈↓ ∧β␈ε")␈↓ ∧→␈ε"=␈α
(␈↓ ∧S␈ε(x␈↓ ∧r␈ε",␈↓ ¬α␈ε(y␈↓ ¬ ␈ε")␈↓ ¬t␈ε"if␈ε(␈α_c␈↓ ε;␈ε"=␈α
0,␈↓ πM␈ε"(␈↓ πY␈ε(x␈↓ π}␈ε",␈↓ λ∞␈ε(y␈↓ λ0␈ε")␈α_otherwise;
␈βπ`␈↓ πm␈ε%0␈↓ λ∨␈ε%0
␈βπd␈↓ β?␈ε%0␈↓ βr␈ε%0
␈βπk␈↓ 
p␈ε"(45)
␈βλ␈↓ β?␈ε90␈↓ βr␈ε90␈↓ ∧g␈ε+l␈↓ ¬∃␈ε+l
␈βλε␈↓ β∨␈ε"(␈↓ β+␈ε(x␈↓ βO␈ε",␈↓ β←␈ε(y␈↓ ∧β␈ε")␈↓ ∧→␈ε"=␈α
(␈↓ ∧S␈ε(x␈↓ ∧r␈ε",␈↓ ¬α␈ε(y␈↓ ¬ ␈ε")␈↓ ¬t␈ε"if␈ε(␈α_c␈↓ ε;␈ε"=␈α
1,␈↓ πM␈ε"(␈↓ πY␈ε(x␈↓ π}␈ε",␈↓ λ∞␈ε(y␈↓ λ0␈ε")␈α_otherwise;
␈βλ∪␈↓ πm␈ε%1␈↓ λ∨␈ε%1
␈βλ↔␈↓ β?␈ε%1␈↓ βr␈ε%1
␈βλ2␈↓ βM␈ε90␈↓ βy␈ε90␈↓ ∧g␈ε+l␈↓ ¬∃␈ε+l
␈βλ9␈↓ β-␈ε"(␈↓ β9␈ε(x␈↓ βW␈ε",␈↓ βg␈ε(y␈↓ ∧β␈ε")␈↓ ∧→␈ε"=␈α
(␈↓ ∧S␈ε(x␈↓ ∧r␈ε",␈↓ ¬α␈ε(y␈↓ ¬ ␈ε")␈↓ ¬t␈ε"if␈ε(␈α_c␈↓ ε;␈ε6∃␈ε"␈α
2,␈↓ πM␈ε"(␈ε(x␈ε",␈↓ π⎇␈ε(y␈↓ λ⊂␈ε")␈α8otherwise;
␈β	α␈↓ α,␈ε90␈↓ αP␈ε90␈↓ αt␈ε90
␈β	λ␈↓ ↓H␈ε"and␈α(␈↓ α~␈ε(z␈↓ α=␈ε(z␈↓ αa␈ε(z␈↓ β∧␈ε")␈↓ β-␈ε"is␈αthe␈αbinary␈αn␈α↓otation␈αfor
␈β	∃␈↓ β⊂␈ε%2
␈β	→␈↓ α,␈ε%2␈↓ αP␈ε%1␈↓ αt␈ε%0
␈β	>␈↓ ¬␈ε↓8
␈β	X␈↓ ¬=␈ε+l␈↓ ¬[␈ε+l
␈β	↑␈↓ ¬␈ε↓>
␈β	`␈↓ ¬)␈ε(x␈↓ ¬H␈ε(y␈↓ ¬f␈ε",␈↓ λe␈ε"if␈ε(␈αc␈ε"␈α
=␈α
0;
␈β	i␈↓ ¬␈ε↓>
␈β	t␈↓ ¬␈ε↓>
␈β	}␈↓ ¬␈ε↓<
␈β

␈↓ ¬`␈ε+l␈↓ ε4␈ε+l
␈β
∩␈↓ ¬)␈ε(x␈↓ ¬M␈ε(y␈↓ ¬t␈ε"+␈↓ ε ␈ε(x␈↓ ε?␈ε(y␈↓ εa␈ε",␈↓ λe␈ε"if␈ε(␈αc␈ε"␈α
=␈α
1;
␈β
∨␈↓ ¬=␈ε%0␈↓ εP␈ε%0
␈β
 ␈↓ β→␈ε+r␈↓ ∧F␈ε+l
␈β
(␈↓ βε␈ε(z␈↓ β1␈ε"+␈↓ β]␈ε(z␈↓ ∧π␈ε"+␈↓ ∧3␈ε(z␈↓ ∧←␈ε"+␈↓ 
p␈ε"(46)
␈β
4␈↓ βn␈ε%1
␈β
8␈↓ β→␈ε%0␈↓ ∧F␈ε%2
␈β
=␈↓ ¬`␈ε+l␈↓ π/␈ε+l
␈β
?␈↓ ¬␈ε↓>
␈β
E␈↓ ¬)␈ε(x␈↓ ¬M␈ε(y␈↓ ¬t␈ε"+␈↓ ε ␈ε(x␈↓ εD␈ε(y␈↓ εo␈ε"+␈↓ π≠␈ε(x␈↓ π:␈ε(y␈↓ π\␈ε",␈↓ λe␈ε"if␈ε(␈αc␈ε"␈α
=␈α
2;
␈β
J␈↓ ¬␈ε↓>
␈β
Q␈↓ ¬=␈ε%0␈↓ ε4␈ε%1␈↓ εV␈ε%1␈↓ πK␈ε%0
␈β
U␈↓ ¬␈ε↓>
␈β
`␈↓ ¬␈ε↓:
␈β
o␈↓ ¬`␈ε+l␈↓ λ
␈ε+l
␈β
w␈↓ ¬)␈ε(x␈↓ ¬M␈ε(y␈↓ ¬t␈ε"+␈↓ ε ␈ε(x␈↓ εD␈ε(y␈↓ ε←␈ε"+␈ε(␈αλx␈↓ π∨␈ε(y␈↓ πJ␈ε"+␈↓ πv␈ε(x␈↓ λ∃␈ε(y␈↓ λ7␈ε",␈↓ λe␈ε"if␈ε(␈αc␈ε"␈α
=␈α
3.
␈ββ␈↓ ¬=␈ε%0␈↓ ε4␈ε%1␈↓ π1␈ε%1␈↓ λ&␈ε%0
␈βE␈↓ ↓H␈ε"The␈αle$m␈α↓ost␈αmachine␈↓ ∧+␈ε(M␈↓ ∧k␈ε"beha␈α␈v␈α␈es␈αin␈αalm␈α↓ost␈αthe␈αsame␈αw␈α␈a␈α␈y␈αas␈αthe␈αothers;␈αit␈αacts
␈βQ␈↓ ∧O␈ε%1
␈βp␈↓ ↓H␈ε"exactly␈α	as␈α
if␈α	there␈α
w␈α␈ere␈α	a␈α
machine␈α	to␈α
its␈α
le$␈α	in␈α
state␈α	(3,␈αε0,␈αε0,␈αε0,␈αε0,␈ε(␈αεu␈ε",␈↓ 	K␈ε(v␈↓ 	↑␈ε",␈↓ 	n␈ε(q␈↓ 
↓␈ε",␈αε0,␈αε0)␈α	when
␈β≠␈↓ ↓H␈ε"it␈αis␈α
receiving␈α
the␈α
inputs␈α(␈ε(u␈ε",␈↓ ¬π␈ε(v␈↓ ¬~␈ε",␈↓ ¬*␈ε(q␈↓ ¬=␈ε").␈α∪The␈αoutput␈α
of␈α
the␈α
arra␈α␈y␈αis␈α
the␈↓ 	S␈ε(z␈↓ 
↓␈ε"componen␈α␈t
␈β'␈↓ 	d␈ε%0
␈βF␈↓ ↓H␈ε"of␈↓ ↓r␈ε(M␈↓ α'␈ε".
␈βS␈↓ α⊗␈ε%1
␈βq␈↓ α␈ε"T␈α⎇able␈α1␈αsh␈α↓o␈α␈ws␈αan␈αexample␈αof␈αthis␈αarra␈α␈y␈αacting␈αon␈αthe␈αinputs
␈β
E␈↓ β)␈ε(u␈ε"␈α
=␈↓ βv␈ε(v␈↓ ∧∩␈ε"=␈α
(␈↓ ∧R␈ε".␈αε.␈αε.␈↓ ¬α␈ε"00010111␈↓ ε∩␈ε")␈↓ ε/␈ε",␈↓ ππ␈ε(q␈↓ π$␈ε"=␈α
(␈↓ πd␈ε".␈αε.␈αε.␈↓ λ∀␈ε"00001011␈↓ 	$␈ε")␈↓ 	A␈ε".
␈β
Q␈↓ ε≡␈ε%2␈↓ 	0␈ε%2
␈β∞_␈↓ ↓H␈ε"The␈αoutput␈αsequence␈αappears␈αin␈αthe␈αlo␈α␈w␈α␈er␈αrigh␈α␈t␈αportion␈αof␈αthe␈αstates␈αof␈↓ 
3␈ε(M␈↓ 
h␈ε":
␈β∞$␈↓ 
W␈ε%1
␈β∞k␈↓ ∧A␈ε"0,␈α0,␈α1,␈α1,␈α1,␈α0,␈α0,␈α0,␈α0,␈α1,␈α0,␈↓ πy␈ε".␈αε.␈αε.␈↓ λ)␈ε",
␈β∂>␈↓ ↓H␈ε"represen␈α␈ting␈αthe␈αn␈α␈um␈α␈ber␈α(␈↓ ∧e␈ε".␈αε.␈αε.␈↓ ¬∃␈ε"01000011100␈↓ ε[␈ε")␈↓ πβ␈ε"from␈αrigh␈α␈t␈αto␈αle$.
␈β∂K␈↓ εg␈ε%2
␈β∂i␈↓ α␈ε"This␈αconstruction␈αis␈αbased␈αon␈αa␈αsimilar␈αone␈α|rst␈αpublished␈αby␈αA.␈αJ.␈↓ 
'␈ε"A␈α␈trubin,
␈β⊂∃␈↓ ↓H␈ε/IEEE␈α
T␈α⎇rans.␈ε2␈α∩EC↑14␈ε"␈α
(1965),␈α∞394↑399.␈α~S.␈↓ εX␈ε"Win␈α↓ograd␈α
[␈ε/JA␈α␈CM␈ε2␈α
14␈ε"␈α
(1967),␈α
793↑802]
␈β⊂@␈↓ ↓H␈ε"has␈αin␈α␈v␈α␈estigated␈αthe␈αminim␈α␈um␈αm␈α␈ultiplication␈αtime␈αachiev␈α}able␈αin␈αa␈αlogical␈αcircuit
␈β⊂k␈↓ ↓H␈ε"when␈ε(␈αn␈ε"␈αis␈αgiv␈α␈en␈αand␈αwhen␈αthe␈αinputs␈αare␈αa␈α␈v␈α}ailable␈αall␈αat␈αonce␈αin␈αcoded␈αform;␈αsee
␈β⊃⊗␈↓ ↓H␈ε"also␈αC.␈αS.␈↓ αj␈ε"W␈α⎇allace,␈ε/␈αIEEE␈αT␈α⎇rans.␈ε2␈αEC↑13␈ε"␈α(1964),␈α14↑17.
␈β∪(

␈β↓U␈↓ ↓H␈ε"300␈↓ 
b␈ε"4.3.3
␈β↓\␈↓ α=␈ε∞ARITH␈α↓MET␈α↓IC
␈βα$␈↓ ↓H␈ε=E␈α␈XERCISES
␈βαz␈↓ ↓g␈ε31.␈↓ α␈ε#[␈ε)22␈↓ α;␈ε#]␈α⊗Th␈α␈e␈α∞ide␈α␈a␈α∞ex␈α␈pr␈α␈essed␈α
in␈α∞(2␈α␈)␈α∞can␈α
b␈α␈e␈α∞ge␈α␈nera␈α␈li␈α↓ze␈α␈d␈α∞t␈α␈o␈α∞th␈α␈e␈α∞d␈α␈ecimal␈α∞s␈α␈ystem,␈α∞if␈α∞the
␈ββ!␈↓ ↓H␈ε#ra␈α␈dix␈αλ2␈α	is␈α	re␈α␈place␈α␈d␈α	b␈α␈y␈αλ10.␈α∞Using␈αλthis␈α	g␈α␈ene␈α␈ralization␈α␈,␈α
ca␈α␈lculate␈αλ27␈α␈18␈α	time␈α␈s␈α	47␈α␈42␈αλ(redu␈α␈cing
␈ββI␈↓ ↓H␈ε#th␈α␈is␈α	p␈α␈rodu␈α␈ct␈αλof␈α	fou␈α␈r-dig␈α␈i␈α↓t␈αλn␈α␈u␈α␈m␈α␈be␈α␈rs␈α	to␈αλthre␈α␈e␈α	p␈α␈rod␈α␈ucts␈αλof␈α	t␈α␈w␈α␈o␈α␈-␈α↓d␈α␈igit␈α	n␈α}um␈α␈b␈α␈ers,␈α	an␈α␈d␈αλredu␈α␈cing
␈ββq␈↓ ↓H␈ε#e␈α␈ach␈α
of␈αthe␈αlatte␈α␈r␈αto␈αpro␈α␈du␈α␈cts␈αof␈αo␈α␈ne-d␈α␈i␈α↓g␈α␈i␈α↓t␈αn␈α}um␈α␈b␈α␈ers).
␈β∧(␈↓ ↓g␈ε32.␈↓ α␈ε#[␈ε)M2␈α␈2␈↓ α\␈ε#]␈α⊗Pro␈α␈v␈α␈e␈αλthat,␈α	in␈α	ste␈α␈p␈α	C1␈αλof␈α	Algor␈α␈i␈α↓th␈α␈m␈α	C␈↓ π~␈ε#,␈α	the␈α	v␈α⎇alue␈αλof␈↓ λ\␈ε)R␈↓ 	␈ε#eithe␈α␈r␈α	sta␈α␈y␈α␈s␈α	the␈αλsame
␈β∧M␈↓ εα␈ε7p
␈β∧O␈↓ ↓H␈ε#o␈α␈r␈αin␈α␈crease␈α␈s␈αb␈α␈y␈αon␈α␈e␈αwh␈α␈en␈αw␈α␈e␈αset␈↓ ¬%␈ε)R␈↓ ¬J␈ε7␈ ␈α
b␈↓ ε≡␈ε)Q␈↓ ε8␈ε7c␈ε#.␈α~(Therefo␈α␈re,␈αa␈α␈s␈αo␈α␈bserv␈α}ed␈αin␈αtha␈α␈t␈αst␈α␈ep,␈αw␈α␈e
␈β∧Q␈↓ ε≡␈∧∧Qε≡α≠
␈β∧w␈↓ ↓H␈ε#n␈α␈eed␈α
n␈α↓o␈α␈t␈αcalcu␈α␈l␈α↓a␈α␈te␈αa␈αsqu␈α␈are␈αroot.)
␈β¬.␈↓ ↓g␈ε33.␈↓ α␈ε#[␈ε)M2␈α␈3␈↓ α\␈ε#]␈α⊗Pro␈α␈v␈α␈e␈α∂tha␈α␈t␈α⊂the␈α∂sequ␈α␈en␈α␈ces␈↓ εβ␈ε)q␈↓ ε#␈ε#,␈↓ ε>␈ε)r␈↓ εl␈ε#d␈α␈e|n␈α␈ed␈α∂i␈α↓n␈α∂Algo␈α␈ri␈α↓th␈α␈m␈α⊂C␈α∂satisfy␈α⊂th␈α␈e␈α⊂in␈α␈-
␈β¬9␈↓ ε∪␈ε,k␈↓ εL␈ε,k
␈β¬P␈↓ αV␈ε,q␈↓ αs␈ε&+1␈↓ βb␈ε,r␈↓ ∧C␈ε,q␈↓ ¬ε␈ε&+␈↓ ¬ ␈ε,q
␈β¬U␈↓ ↓H␈ε#e␈α␈qua␈α␈li␈α↓t␈α␈y␈↓ αE␈ε#2␈↓ β≥␈ε#(2␈↓ β8␈ε)r␈↓ βW␈ε#)␈↓ ∧λ␈ε7∀␈↓ ∧2␈ε#2␈↓ ¬>␈ε#,␈αwh␈α␈en␈↓ ε*␈ε)k␈↓ εF␈ε#>␈α	0.
␈β¬W␈↓ αd␈ε-k␈↓ βn␈ε-k␈↓ ∧Q␈ε-k␈↓ ∧←␈ε;␈␈ε'1␈↓ ¬.␈ε-k
␈β¬a␈↓ βG␈ε,k
␈βε
␈↓ ↓;␈ε↓x
␈βε␈↓ ↓c␈ε34.␈↓ α␈ε#[␈ε)28␈↓ α;␈ε#]␈α⊗(K.␈↓ β∀␈ε#Bak␈α␈e␈α␈r.␈α↓)␈α≠S␈α␈h␈α↓o␈α}w␈α
th␈α␈at␈αit␈αis␈αadv␈α⎇an␈α␈ta␈α␈geo␈α␈us␈αto␈αe␈α␈v␈α}alu␈α␈ate␈αth␈α␈e␈αpoly␈α␈n␈α↓o␈α␈mial␈↓ 
b␈ε)W␈↓ ∧␈ε#(␈ε)x␈ε#␈α␈)
␈βε4␈↓ ↓H␈ε#a␈α␈t␈α∞th␈α␈e␈α
poin␈α}ts␈ε)␈α∞x␈ε#␈α=␈ε7␈α∞␈␈↓ ∧β␈ε)r␈↓ ∧∩␈ε#,␈↓ ∧*␈ε#.␈αε.␈α¬.␈↓ ∧V␈ε#,␈α∞0,␈↓ ¬∃␈ε#.␈αε.␈αε.␈↓ ¬B␈ε#,␈↓ ¬Y␈ε)r␈↓ ¬v␈ε#inst␈α␈ead␈α
of␈α
at␈α
the␈α
non␈α␈neg␈α␈ativ␈α␈e␈α
po␈α␈i␈α↓n␈α}ts␈ε)␈α
x␈ε#␈α
=␈α∞0␈α␈,␈α∂1␈α␈,
␈βε\␈↓ ↓H␈ε#.␈α¬.␈αε.␈↓ ↓t␈ε#,␈α2␈↓ α→␈ε)r␈↓ α3␈ε#as␈αin␈αAlgorith␈α␈m␈αC␈↓ ∧:␈ε#.␈α∂The␈αp␈α␈olynom␈α␈i␈α↓a␈α␈l␈↓ εC␈ε)U␈↓ ε]␈ε#(␈ε)x␈ε#)␈αcan␈α
be␈αwritten
␈βπ'␈↓ ε5␈ε&2␈↓ πU␈ε&2
␈βπ.␈↓ ∧|␈ε)U␈↓ ¬↔␈ε#(␈ε)x␈ε#␈α␈)␈α
=␈↓ ¬s␈ε)U␈↓ ε↔␈ε#(␈↓ ε"␈ε)x␈↓ εD␈ε#)␈απ+␈ε)␈αλx␈↓ π∩␈ε)U␈↓ π7␈ε#(␈↓ πB␈ε)x␈↓ πd␈ε#),
␈βπ:␈↓ ε
␈ε,e␈↓ π(␈ε,o
␈βλ↓␈↓ ↓H␈ε#a␈α␈nd␈αsimil␈α↓a␈α␈rl␈α↓y␈↓ β∀␈ε)V␈↓ β0␈ε#(␈ε)x␈ε#␈α␈)␈α
an␈α␈d␈↓ ∧(␈ε)W␈↓ ∧I␈ε#(␈ε)x␈ε#)␈α
c␈α␈an␈α
b␈α␈e␈α
ex␈α␈pa␈α␈nd␈α␈ed␈αi␈α↓n␈αthis␈α
w␈α␈a␈α␈y␈α␈;␈α∞sh␈α↓o␈α}w␈α
h␈α↓o␈α}w␈α
to␈α
ex␈α␈ploit␈α
th␈α␈is
␈βλ(␈↓ ↓H␈ε#id␈α␈ea,␈αob␈α␈tainin␈α␈g␈αfaster␈αca␈α␈lculatio␈α␈ns␈αin␈αstep␈α␈s␈αC7␈αan␈α␈d␈αC8␈α␈.
␈βλ]␈↓ ↓;␈ε↓x
␈βλ↑␈↓ λu␈ε7p
␈βλ←␈↓ ↓c␈ε35.␈↓ α␈ε#[␈ε)35␈↓ α;␈ε#]␈α⊗S␈α␈h␈α↓o␈α}w␈α
th␈α␈at␈αif␈α
in␈αstep␈αC1␈αo␈α␈f␈α
Algo␈α␈ri␈α↓th␈α␈m␈αC␈αw␈α␈e␈αset␈↓ λ∃␈ε)R␈↓ λ<␈ε7␈ ␈αd␈↓ 	⊃␈ε#2␈ε)Q␈↓ 	A␈ε7e␈ε#␈α	+␈αλ1␈αinste␈α␈ad␈αo␈α␈f
␈βλa␈↓ 	⊃␈∧λa	⊃α,
␈β	¬␈↓ α$␈ε7p
␈β	π␈↓ ↓H␈ε)R␈↓ ↓l␈ε7␈ ␈α
b␈↓ α?␈ε)Q␈↓ αZ␈ε7c␈ε#,␈α
wi␈α↓th␈α	suitab␈α␈l␈α↓e␈α
in␈α␈i␈α↓tia␈α␈l␈αv␈α}a␈α␈l␈α↓u␈α␈es␈α
of␈↓ ε(␈ε)q␈↓ εH␈ε#,␈↓ ε\␈ε)q␈↓ ε|␈ε#,␈↓ π∂␈ε)r␈↓ π-␈ε#,␈αa␈α␈nd␈↓ λ␈ε)r␈↓ λ≡␈ε#,␈αth␈α␈en␈α
(1␈α␈9)␈α
can␈α
b␈α␈e␈α
i␈α↓m␈α␈pro␈α}v␈α␈ed
␈β		␈↓ α?␈∧		α?α≠
␈β	∪␈↓ ε9␈ε&0␈↓ εl␈ε&1␈↓ π≡␈ε&0␈↓ λ∂␈ε&1
␈β	.␈↓ β~␈ε7p
␈β	2␈↓ β6␈∧	2β6αo
␈β	4␈↓ β6␈ε&2␈↓ βH␈ε&lg␈↓ βb␈ε,q
␈β	:␈↓ ↓H␈ε#to␈↓ ↓p␈ε)t␈↓ α⊗␈ε7∀␈↓ αA␈ε)q␈↓ β
␈ε#2␈↓ ∧,␈ε#(␈↓ ∧7␈ε#lg␈↓ ∧W␈ε)q␈↓ ¬ ␈ε#).
␈β	;␈↓ βp␈ε-k␈↓ β}␈ε'+␈α↓1
␈β	F␈↓ ↓⎇␈ε,k␈↓ αQ␈ε,k␈↓ α`␈ε&+␈α↓1␈↓ ∧g␈ε,k␈↓ ∧v␈ε&+1
␈β	q␈↓ ↓g␈ε36.␈↓ α␈ε#[␈ε)M2␈α␈3␈↓ α\␈ε#]␈α⊗Pro␈α␈v␈α␈e␈αth␈α␈at␈αth␈α␈e␈αsix␈αn␈α␈u␈α␈m␈α␈b␈α␈ers␈αin␈α(22␈α␈)␈αa␈α␈re␈αrelativ␈α␈e␈α␈l␈α↓y␈α
prime␈αin␈αp␈α␈airs.
␈β
(␈↓ ↓g␈ε37.␈↓ α␈ε#[␈ε)M2␈α␈3␈↓ α\␈ε#]␈α⊗Pro␈α␈v␈α␈e␈α(2␈α␈3).
␈β
]␈↓ ↓;␈ε↓x
␈β
←␈↓ ↓c␈ε38.␈↓ α␈ε#[␈ε)25␈↓ α;␈ε#]␈α⊗Pro␈α␈v␈α}e␈α∞tha␈α␈t␈α∂it␈α∞tak␈α}es␈α∞only␈↓ ¬P␈ε)O␈↓ ¬j␈ε#(␈↓ ¬u␈ε)K␈↓ ε≠␈ε#log␈↓ εK␈ε)K␈↓ εk␈ε#)␈α∞arithm␈α␈etic␈α∞ope␈α␈ration␈α␈s␈α∂to␈α∞e␈α␈v␈α}alu␈α␈ate␈α∞the
␈βπ␈↓ ↓H␈ε#d␈α␈iscrete␈αF␈α⎇ou␈α␈rier␈αtran␈α␈sform␈α(3␈α␈2),␈αev␈α␈en␈α
whe␈α␈n␈↓ ε=␈ε)K␈↓ εh␈ε#is␈αnot␈αa␈αp␈α␈o␈α␈w␈α␈er␈αo␈α␈f␈α2.␈↓ 	~␈ε#[␈ε0Hin␈α␈t:␈ε#␈αRewrite␈α(32␈α␈)
␈β.␈↓ ↓H␈ε#in␈αt␈α␈he␈αform
␈β6␈↓ ¬y␈ε↓X
␈βL␈↓ ¬.␈ε'2␈↓ π'␈ε'2␈↓ λ∞␈ε'2
␈βR␈↓ ¬π␈ε:␈␈↓ ¬!␈ε,s␈↓ ¬=␈ε&/␈α␈2␈↓ εb␈ε&(␈ε,s␈ε&␈α␈+␈ε,␈α↓t␈↓ π≥␈ε&)␈↓ π5␈ε&/2␈↓ πi␈ε:␈␈↓ λβ␈ε,t␈↓ λ≤␈ε&/2
␈βZ␈↓ ∧≠␈ε)u␈↓ ∧≥␈ε#∂␈↓ ∧F␈ε#=␈↓ ∧q␈ε)|␈↓ εL␈ε)|␈↓ πR␈ε)|␈↓ λ9␈ε)u
␈βe␈↓ ∧/␈ε,s␈↓ λM␈ε,t
␈β␈↓ ¬←␈ε&0␈ε:∀␈ε,t␈ε&<␈↓ ε,␈ε,K
␈βA␈↓ ↓H␈ε#a␈α␈nd␈α
exp␈α␈ress␈αth␈α␈i␈α↓s␈αsu␈α␈m␈αas␈αa␈↓ ∧H␈ε#con␈α␈v␈α}olutio␈α␈n␈αpr␈α␈odu␈α␈ct.]
␈βx␈↓ ↓g␈ε39.␈↓ α␈ε#[␈ε)M1␈α␈5␈↓ α\␈ε#]␈α⊗Su␈α␈pp␈α␈ose␈α
the␈α
F␈α}o␈α␈urier␈α
tran␈α␈sforma␈α␈ti␈α↓o␈α␈n␈α
method␈α
of␈α
the␈α
tex␈α␈t␈αis␈αap␈α␈plied␈α
with␈α
all
␈β
→␈↓ ¬	␈ε,q
␈β
∨␈↓ ↓H␈ε#o␈α␈ccu␈α␈rrenc␈α␈es␈αof␈↓ β ␈ε)|␈↓ βA␈ε#rep␈α␈laced␈α
by␈↓ ∧s␈ε)|␈↓ ¬→␈ε#,␈αwhere␈↓ ε
␈ε)q␈↓ ε*␈ε#i␈α↓s␈α
some␈α|␈α␈xe␈α␈d␈αin␈α␈te␈α␈ger.␈α∂Find␈α
a␈αsimp␈α␈l␈α↓e␈α
relation
␈β
G␈↓ ↓H␈ε#b␈α␈et␈α␈w␈α␈een␈α
the␈α∞n␈α}um␈α}bers␈α∞(␈↓ ∧~␈ε)u␈↓ ∧≠␈ε#∀␈↓ ∧<␈ε#,␈↓ ∧K␈ε)u␈↓ ∧M␈ε#∀␈↓ ∧n␈ε#,␈↓ ∧⎇␈ε#.␈α¬.␈αε.␈↓ ¬)␈ε#,␈↓ ¬8␈ε)u␈↓ ¬9␈ε#∀␈↓ ε
␈ε#)␈α∂o␈α␈bta␈α␈i␈α↓n␈α␈ed␈α
by␈α∞th␈α␈is␈α∞gen␈α␈eral␈α∞p␈α␈roced␈α␈ure␈α
and␈α
the
␈β
R␈↓ ∧-␈ε&0␈↓ ∧←␈ε&1␈↓ ¬K␈ε,K␈↓ ¬d␈ε:␈␈ε&1
␈β
n␈↓ ↓H␈ε#n␈α}um␈α␈b␈α␈ers␈α(␈↓ αX␈ε)u␈↓ αY␈ε#∂␈↓ α{␈ε#,␈↓ β	␈ε)u␈↓ β␈ε#∂␈↓ β,␈ε#,␈↓ β;␈ε#.␈αε.␈α¬.␈↓ βg␈ε#,␈↓ βv␈ε)u␈↓ βw␈ε#∂␈↓ ∧L␈ε#)␈αo␈α␈bta␈α␈i␈α↓n␈α␈ed␈αwh␈α␈en␈↓ εB␈ε)q␈↓ ε]␈ε#=␈α	1.
␈β
z␈↓ αk␈ε&0␈↓ β≥␈ε&1␈↓ ∧	␈ε,K␈↓ ∧"␈ε:␈␈ε&1
␈β∞ ␈↓ ∞␈ε&[␈↓ ⊗␈ε,j␈↓ #␈ε&]
␈β∞%␈↓ ↓V␈ε310.␈↓ α␈ε#[␈ε)M2␈α␈6␈↓ α\␈ε#]␈α⊗The␈α∩s␈α␈caling␈α⊃i␈α↓n␈α⊃(37)␈α∩m␈α␈ak␈α}es␈α∩it␈α∩clear␈α∩th␈α␈at␈α∩a␈α␈ll␈α∪th␈α␈e␈α∩co␈α␈mp␈α␈l␈α↓e␈α␈x␈α∩n␈α}um␈α␈b␈α␈ers␈↓ 
v␈ε)A
␈β∞G␈↓ 	O␈ε,j␈↓ 	[␈ε:␈␈↓ 	u␈ε,k
␈β∞M␈↓ ↓H␈ε#c␈α␈omp␈α␈uted␈α	b␈α␈y␈α	pa␈α␈ss␈↓ βT␈ε)j␈↓ βm␈ε#o␈α␈f␈α
th␈α␈e␈α
tr␈α␈ansfo␈α␈rmation␈αλsub␈α␈rout␈α␈i␈α↓n␈α␈e␈α	w␈α↓ill␈α
b␈α␈e␈α	l␈α↓es␈α␈s␈α
th␈α␈an␈↓ 	>␈ε#2␈↓ 
∂␈ε#in␈α	ab␈α␈solute
␈β∞u␈↓ ↓H␈ε#v␈α⎇alue,␈α
du␈α␈ri␈α↓n␈α␈g␈α
th␈α␈e␈α
calcu␈α␈l␈α↓a␈α␈tions␈α
o␈α␈f␈↓ ¬1␈ε)u␈↓ ¬2␈ε#∂␈↓ ¬←␈ε#and␈↓ ε"␈ε#∂␈↓ ε"␈ε)v␈↓ εN␈ε#in␈α
th␈α␈e␈↓ π2␈ε#Sch␈↓ πf␈ε#∪␈↓ πf␈ε#o␈↓ πw␈ε#n␈α␈ha␈α␈ge↑␈↓ λ\␈ε#Stras␈α␈sen␈α
m␈α␈u␈α␈lti␈α↓p␈α␈li␈α↓c␈α␈ation
␈β∂␈↓ ¬D␈ε,s␈↓ ε3␈ε,s
␈β∂⊗␈↓ ¬D␈ε&[␈↓ ¬M␈ε,j␈↓ ¬Y␈ε&]
␈β∂≤␈↓ ↓H␈ε#a␈α␈l␈α↓g␈α␈orith␈α␈m.␈α⊗S␈α␈ho␈α␈w␈α
tha␈α␈t␈α∞a␈α␈l␈α↓l␈α
of␈α
th␈α␈e␈↓ ¬,␈ε)A␈↓ ¬p␈ε#wil␈α↓l␈α
be␈αl␈α↓es␈α␈s␈α∞th␈α␈an␈α1␈α
in␈α
ab␈α␈solute␈α
v␈α⎇alue␈α
d␈α␈urin␈α␈g␈α
the
␈β∂D␈↓ ↓H␈ε0th␈α␈ird␈ε#␈αF␈α⎇ou␈α␈ri␈α↓e␈α␈r␈αt␈α␈ransfo␈α␈rmatio␈α␈n␈α(the␈αc␈α␈alcula␈α␈ti␈α↓o␈α␈n␈αof␈↓ πε␈ε)w␈↓ π,␈ε#).
␈β∂O␈↓ π≡␈ε,r
␈β∂y␈↓ ↓;␈ε↓x
␈β∂{␈↓ ↓S␈ε31␈α␈1.␈↓ α␈ε#[␈ε)M2␈α␈6␈↓ α\␈ε#]␈α⊗If␈ε)␈αn␈ε#␈αis␈α|␈α␈xe␈α␈d,␈αho␈α␈w␈αman␈α}y␈αof␈αth␈α␈e␈αauto␈α␈mata␈αin␈αth␈α␈e␈αline␈α␈ar␈αitera␈α␈tiv␈α␈e␈αarra␈α␈y␈α(4␈α␈5),
␈β⊂"␈↓ ↓H␈ε#(4␈α␈6)␈αare␈αn␈α␈eed␈α␈ed␈αto␈αco␈α␈mp␈α␈ute␈αth␈α␈e␈αpro␈α␈du␈α␈ct␈αof␈ε)␈αn␈ε#␈α↓-b␈α␈it␈αn␈α}um␈α}bers?␈α→(Note␈αt␈α␈hat␈αth␈α␈e␈αau␈α␈toma␈α␈ton
␈β⊂D␈↓ εD␈ε,r
␈β⊂J␈↓ ↓H␈ε)M␈↓ α¬␈ε#i␈α↓s␈α∞in⎇␈α␈ue␈α␈nced␈α
only␈α∞b␈α␈y␈α∞the␈α∞co␈α␈mp␈α␈one␈α␈n␈α␈t␈↓ ε2␈ε)z␈↓ εa␈ε#of␈α∞the␈α∞ma␈α␈ch␈α␈i␈α↓n␈α␈e␈α∞on␈α∞its␈α∞ri␈α↓g␈α␈h␈α␈t,␈α∂so␈α∞w␈α␈e␈α∞ma␈α␈y
␈β⊂V␈↓ ↓i␈ε,j
␈β⊂X␈↓ εD␈ε&0
␈β⊂r␈↓ ↓H␈ε#re␈α␈m␈α↓o␈α␈v␈α}e␈α
all␈αau␈α␈tom␈α␈ata␈α
whose␈↓ ∧↑␈ε)z␈↓ ¬π␈ε#com␈α␈pon␈α␈en␈α}t␈αis␈α
alw␈α␈a␈α␈y␈α␈s␈αz␈α␈ero␈α
whe␈α␈nev␈α}er␈α
the␈α
inp␈α␈ut␈α␈s␈αa␈α␈re␈ε)␈α
n␈ε#␈α↓-b␈α␈it
␈β⊂⎇␈↓ ∧n␈ε&0
␈β⊃→␈↓ ↓H␈ε#n␈α}um␈α␈b␈α␈ers.)
␈β∪(

␈β↓U␈↓ ↓H␈ε"4.3.3␈↓ 
)␈ε"?␈↓ 
v␈ε"301
␈β↓\␈↓ εF␈ε∞H␈α↓O␈α␈W␈α
F␈α|AST␈α
CA␈α↓N␈α	W␈α↓E␈α
MUL␈α}TI␈α↓P␈α␈L␈α}Y
␈βα#␈↓ ↓;␈ε↓x
␈βα%␈↓ ↓S␈ε31␈α␈2.␈↓ α␈ε#[␈ε)30␈↓ α;␈ε#]␈α⊗(A.␈αSc␈α␈h␈↓ βE␈ε#∪␈↓ βE␈ε#o␈↓ βU␈ε#nh␈α␈age.)␈α_The␈α
pu␈α␈rpose␈α
of␈αth␈α␈i␈α↓s␈α
exe␈α␈rcise␈αis␈αto␈αp␈α␈ro␈α␈v␈α}e␈αtha␈α␈t␈αa␈αsimp␈α␈le␈αform
␈βαM␈↓ ↓H␈ε#o␈α␈f␈↓ ↓r␈ε#p␈α␈oin␈α␈te␈α␈r␈α∂m␈α␈ach␈α␈i␈α↓n␈α␈e␈α∞can␈α
m␈α␈ultiply␈ε)␈α∞n␈ε#-bit␈α∞n␈α␈u␈α␈m␈α␈ber␈α␈s␈α∂in␈↓ π?␈ε)O␈↓ πY␈ε#(␈ε)n␈ε#␈α↓)␈α∞step␈α␈s.␈α→Th␈α␈e␈α∞mach␈α␈ine␈α∞h␈α␈as␈α∞n␈α↓o
␈βαt␈↓ ↓H␈ε#b␈α␈uilt-in␈α
fac␈α␈i␈α↓lities␈α
for␈α
ar␈α␈i␈α↓th␈α␈metic;␈α
all␈α
i␈α↓t␈α
d␈α␈oes␈α
is␈α
w␈α␈o␈α␈rk␈α
with␈α
nod␈α␈es␈α
an␈α␈d␈α
p␈α␈oin␈α␈te␈α␈rs.␈α∂Each␈α	node
␈ββ≤␈↓ ↓H␈ε#h␈α␈as␈α	th␈α␈e␈α	same␈αλ|n␈α␈i␈α↓te␈α	n␈α}um␈α}ber␈α	o␈α␈f␈α
link␈αλ|eld␈α␈s,␈α
an␈α␈d␈α	th␈α␈ere␈α	a␈α␈re␈α	|n␈α␈i␈α↓t␈α␈el␈α↓y␈αλman␈α}y␈α	link␈αλregisters.␈α∞The
␈ββD␈↓ ↓H␈ε#o␈α␈nly␈αo␈α␈pera␈α␈tions␈αth␈α␈is␈αmach␈α␈ine␈αca␈α␈n␈αd␈α␈o␈αare:
␈ββv␈↓ α∀␈ε#i)␈↓ α4␈ε#re␈α␈ad␈αo␈α␈ne␈αb␈α␈it␈αo␈α␈f␈αi␈α↓n␈α␈pu␈α␈t␈αan␈α␈d␈αjum␈α␈p␈αif␈αtha␈α␈t␈αb␈α␈it␈αi␈α↓s␈α0␈α␈;
␈β∧≡␈↓ α␈ε#ii)␈↓ α4␈ε#o␈α␈utp␈α␈ut␈α0␈αo␈α␈r␈α1;
␈β∧E␈↓ αα␈ε#iii)␈↓ α4␈ε#loa␈α␈d␈αa␈α
r␈α␈egister␈αwi␈α↓th␈αth␈α␈e␈α
c␈α␈on␈α␈te␈α␈n␈α␈ts␈αof␈α
a␈α␈n␈α↓ot␈α␈her␈αregister␈αor␈αwi␈α↓th␈αth␈α␈e␈α
c␈α␈on␈α␈te␈α␈n␈α␈ts␈αof␈α
a
␈β∧m␈↓ α4␈ε#link␈α
|eld␈α
i␈α↓n␈α
a␈αnode␈αp␈α␈oin␈α}ted␈αto␈αb␈α␈y␈αa␈α
register;
␈β¬∀␈↓ αβ␈ε#iv␈α␈)␈↓ α4␈ε#sto␈α␈re␈α	t␈α␈he␈αλcon␈α}ten␈α␈ts␈αλof␈αλa␈α	re␈α␈gister␈α	in␈α}to␈α	a␈αλlink␈αλ|␈α␈eld␈α	in␈αλa␈αλn␈α↓o␈α␈de␈αλpo␈α␈in␈α␈ted␈αλto␈αλby␈αλa␈αλreg␈α␈i␈α↓s␈α␈ter;
␈β¬<␈↓ α␈ε#v␈α␈)␈↓ α4␈ε#ju␈α␈mp␈αif␈αt␈α␈w␈α␈o␈αreg␈α␈i␈α↓ste␈α␈rs␈αare␈αeq␈α␈ua␈α␈l␈α↓;
␈β¬d␈↓ αβ␈ε#v␈α␈i)␈↓ α4␈ε#c␈α␈reate␈αa␈α
new␈αnod␈α␈e␈αand␈α
mak␈α}e␈αa␈αreg␈α␈ister␈αpo␈α␈i␈α↓n␈α}t␈αto␈αit;
␈βε␈↓ ↓y␈ε#vii)␈↓ α4␈ε#h␈α␈alt.
␈βε>␈↓ ↓H␈ε#Im␈α␈plemen␈α}t␈αth␈α␈e␈αF␈α⎇ou␈α␈ri␈α↓e␈α␈r-tran␈α␈sf␈α↓o␈α␈rm␈αm␈α}ultiplication␈α
me␈α␈th␈α↓od␈α
e}␈α␈cien␈α␈tly␈α
on␈α
suc␈α␈h␈αa␈α
ma␈α␈chin␈α␈e.
␈βεe␈↓ ↓H␈ε#[␈ε0Hin␈α␈ts:␈ε#␈α⊂First␈α∞sho␈α␈w␈α∞th␈α␈at␈α
if␈↓ ∧M␈ε)N␈↓ ∧{␈ε#is␈α
an␈α␈y␈α
p␈α␈ositiv␈α␈e␈α
i␈α↓n␈α}tege␈α␈r,␈α∂it␈α∞is␈α
poss␈α␈i␈α↓b␈α␈le␈α∞to␈α
crea␈α␈te␈↓ 
-␈ε)N␈↓ 
Z␈ε#n␈α↓o␈α␈de␈α␈s
␈βπ
␈↓ ↓H␈ε#re␈α␈prese␈α␈n␈α␈ting␈α
t␈α␈he␈α
in␈α␈teg␈α␈ers␈ε7␈α
f␈ε#0␈α␈,␈αε1,␈↓ ¬¬␈ε#.␈α¬.␈αε.␈↓ ¬1␈ε#,␈↓ ¬@␈ε)N␈↓ ¬e␈ε7␈␈ε#␈αε1␈ε7g␈ε#,␈α
where␈α
t␈α␈he␈α
node␈α
re␈α␈prese␈α␈n␈α␈ting␈ε)␈α	p␈ε#␈αh␈α␈as␈α
p␈α␈oin␈α␈ter␈α␈s
␈βπ4␈↓ ↓H␈ε#to␈αth␈α␈e␈αn␈α↓o␈α␈des␈αrep␈α␈resen␈α}ting␈ε)␈αp␈ε#␈αλ+␈αλ1,␈ε7␈α
b␈ε)p␈ε#/␈α␈2␈ε7c␈ε#,␈α
an␈α␈d␈α2␈ε)␈α␈p␈ε#.␈α∪The␈α␈se␈α
nod␈α␈es␈αcan␈αbe␈αcrea␈α␈ted␈αin␈↓ 
\␈ε)O␈↓ 
v␈ε#(␈↓ ↓␈ε)N␈↓ !␈ε#)
␈βπ\␈↓ ↓H␈ε#ste␈α␈ps.␈α∂S␈α␈ho␈α␈w␈α
tha␈α␈t␈αa␈α␈rithme␈α␈ti␈α↓c␈α
with␈α	radix␈↓ επ␈ε)N␈↓ ε2␈ε#c␈α␈an␈α
no␈α␈w␈α
be␈α	si␈α↓m␈α␈u␈α␈lated␈α	wi␈α↓thou␈α␈t␈α
di}cu␈α␈lt␈α␈y:␈αfo␈α␈r
␈βλ∧␈↓ ↓H␈ε#e␈α␈xam␈α␈ple,␈α
it␈α	tak␈α␈e␈α␈s␈↓ βG␈ε)O␈↓ βa␈ε#(␈↓ βl␈ε#log␈↓ ∧≤␈ε)N␈↓ ∧<␈ε#)␈α
step␈α␈s␈α	to␈α	|n␈α␈d␈α	the␈α	nod␈α␈e␈α
fo␈α␈r␈α
(␈ε)p␈ε#␈α∧+␈↓ λλ␈ε)q␈↓ λ~␈ε#)␈↓ λ+␈ε#m␈α␈od␈↓ λo␈ε)N␈↓ 	_␈ε#and␈αλto␈α	dete␈α␈rmine␈α	if
␈βλ%␈↓ ≥␈ε&2
␈βλ+␈↓ ↓H␈ε)p␈ε#␈αα+␈↓ α␈ε)q␈↓ α≠␈ε7∃␈↓ αE␈ε)N␈↓ αe␈ε#,␈α
giv␈α}en␈α	p␈α␈oin␈α␈te␈α␈rs␈α	to␈ε)␈α	p␈ε#␈αλan␈α␈d␈↓ ¬H␈ε)q␈↓ ¬Z␈ε#;␈α
a␈α␈nd␈αλm␈α␈u␈α␈l␈α↓tip␈α␈l␈α↓ica␈α␈tion␈αλcan␈αλbe␈αλsi␈α↓m␈α}ulated␈αλin␈↓ 
≥␈ε)O␈↓ 
7␈ε#(␈↓ 
B␈ε#log␈↓ 
r␈ε)N␈↓ ∩␈ε#)
␈βλS␈↓ ↓H␈ε#ste␈α␈ps.␈α↔No␈α␈w␈α∞co␈α␈nsid␈α␈er␈α∞the␈α
algor␈α␈i␈α↓th␈α␈m␈α∞in␈α
the␈α∞te␈α␈xt,␈α∂with␈↓ πb␈ε)k␈↓ λβ␈ε#=␈↓ λ2␈ε)l␈↓ λJ␈ε#an␈α␈d␈ε)␈α∞m␈ε#␈α
=␈α∂6␈↓ 	y␈ε)k␈↓ 
~␈ε#a␈α␈nd␈↓ 
]␈ε)N␈↓ ␈ε#=
␈βλu␈↓ ↓X␈ε:d␈ε,m␈ε&/13␈ε:␈α␈e
␈βλz␈↓ ↓H␈ε#2␈↓ α1␈ε#,␈α∂so␈α
that␈α∞a␈α␈ll␈α∂q␈α␈uan␈α}titi␈α↓e␈α␈s␈α∞i␈α↓n␈α
th␈α␈e␈α∞|x␈α␈ed␈α∞p␈α␈oin␈α␈t␈α∞a␈α␈rithme␈α␈ti␈α↓c␈α
calcu␈α␈l␈α↓a␈α␈ti␈α↓o␈α␈ns␈α∞a␈α␈re␈α∞13␈α␈-place
␈β	"␈↓ ↓H␈ε#in␈α}tegers␈α	with␈α	rad␈α␈ix␈↓ β`␈ε)N␈↓ ∧␈ε#.␈α∂Fina␈α␈ll␈α↓y␈α␈,␈α
sh␈α↓o␈α}w␈α
th␈α␈at␈α	eac␈α␈h␈α	pa␈α␈ss␈α
o␈α␈f␈α
th␈α␈e␈α	fast␈α	F␈α}o␈α␈urier␈α	tran␈α␈sform␈α␈ation␈α␈s
␈β	D␈↓ ¬4␈ε&2
␈β	H␈↓ βI␈ε"(␈↓ ¬C␈ε")
␈β	J␈↓ ↓H␈ε#c␈α␈an␈α
b␈α␈e␈α
d␈α␈on␈α␈e␈α
in␈↓ β/␈ε)O␈↓ βU␈ε)K␈↓ β}␈ε#+␈α	(␈↓ ∧3␈ε)N␈↓ ∧X␈ε#l␈α↓o␈α␈g␈↓ ¬	␈ε)N␈↓ ¬)␈ε#)␈↓ ¬[␈ε#=␈↓ ε	␈ε)O␈↓ ε#␈ε#(␈↓ ε.␈ε)K␈↓ εN␈ε#)␈α
step␈α␈s,␈α∞us␈α␈i␈α↓n␈α␈g␈α
th␈α␈e␈α
follo␈α␈wing␈αi␈α↓d␈α␈ea:␈α∂Ea␈α␈ch␈α
o␈α␈f
␈β	q␈↓ ↓H␈ε#th␈α␈e␈↓ α¬␈ε)K␈↓ α4␈ε#n␈α␈ecessa␈α␈ry␈α∂ass␈α␈i␈α↓g␈α␈nme␈α␈n␈α␈ts␈α∂ca␈α␈n␈α∂b␈α␈e␈α∂\co␈α␈mpiled␈α␈"␈α∂in␈α␈to␈α∞a␈α∂bo␈α␈un␈α␈ded␈α∞li␈α↓st␈α∞of␈α∂instru␈α␈ction␈α␈s
␈β
→␈↓ ↓H␈ε#fo␈α␈r␈αa␈αsim␈α␈ulate␈α␈d␈↓ βd␈ε#-li␈α↓k␈α}e␈αcom␈α␈pu␈α␈ter␈αwh␈α↓o␈α␈se␈αw␈α␈ord␈αsize␈αis␈↓ π]␈ε)N␈↓ π⎇␈ε#,␈α
a␈α␈nd␈αi␈α↓n␈α␈stru␈α␈ctions␈αfo␈α␈r␈↓ 
@␈ε)K␈↓ 
l␈ε#su␈α␈ch
␈β
≠␈↓ β1␈ε∃MIX
␈β
;␈↓ 	∀␈ε&2
␈β
>␈↓ π*␈ε"(␈↓ 	$␈ε")
␈β
@␈↓ ↓H␈ε#m␈α␈ach␈α␈i␈α↓n␈α␈es␈α
ac␈α␈ti␈α↓n␈α␈g␈α
in␈αpara␈α␈ll␈α↓el␈α
ca␈α␈n␈α
b␈α␈e␈α
sim␈α␈ulat␈α␈ed␈α
in␈↓ π⊂␈ε)O␈↓ π6␈ε)K␈↓ π←␈ε#+␈α	(␈↓ λ∀␈ε)N␈↓ λ9␈ε#log␈↓ λi␈ε)N␈↓ 		␈ε#)␈↓ 	=␈ε#ste␈α␈ps␈α
if␈α
the␈α␈y␈α
are
␈β
h␈↓ ↓H␈ε#|␈α␈rst␈α
sort␈α␈ed␈α
so␈α	tha␈α␈t␈α
all␈α
i␈α↓d␈α␈en␈α␈tica␈α␈l␈α
i␈α↓n␈α␈struc␈α␈ti␈α↓o␈α␈ns␈α
a␈α␈re␈α
pe␈α␈rformed␈α	tog␈α␈ethe␈α␈r.␈α∃(Two␈α	instru␈α␈ction␈α␈s
␈β⊂␈↓ ↓H␈ε#a␈α␈re␈αide␈α␈n␈α␈tical␈αif␈αth␈α␈ey␈α
ha␈α␈v␈α}e␈αth␈α␈e␈αsa␈α␈me␈αo␈α␈pera␈α␈ti␈α↓o␈α␈n␈αc␈α␈od␈α␈e,␈αthe␈α
same␈α
register␈α
con␈α}ten␈α␈ts,␈αa␈α␈nd␈α
the
␈β1␈↓ εq␈ε&2␈↓ πn␈ε&12/␈α␈13␈↓ 
ε␈ε&2
␈β7␈↓ ↓H␈ε#sa␈α␈me␈α
m␈α␈em␈α↓ory␈α	op␈α␈eran␈α␈d␈α
c␈α␈on␈α␈te␈α␈n␈α␈ts.)␈α∃Not␈α␈e␈α
tha␈α␈t␈↓ εQ␈ε)N␈↓ π
␈ε#=␈↓ π4␈ε)O␈↓ πO␈ε#(␈↓ πZ␈ε)n␈↓ λ4␈ε#)␈α↓,␈α
so␈α
(␈↓ 	ε␈ε)N␈↓ 	+␈ε#log␈↓ 	[␈ε)N␈↓ 	{␈ε#)␈↓ 
∨␈ε#=␈↓ 
I␈ε)O␈↓ 
d␈ε#(␈↓ 
o␈ε)K␈↓ ∂␈ε#).]
␈βj␈↓ ↓V␈ε313.␈↓ α␈ε#[␈ε)M2␈α␈5␈↓ α\␈ε#]␈α⊗(A.␈α⊃Sc␈α␈h␈↓ βl␈ε#∪␈↓ βl␈ε#o␈↓ β⎇␈ε#n␈α␈ha␈α␈ge.)␈α#W␈α↓h␈α␈at␈α⊂is␈α⊃a␈α⊂g␈α␈o␈α↓od␈α⊂u␈α␈pp␈α␈er␈α⊂bo␈α␈un␈α␈d␈α⊂on␈α⊂th␈α␈e␈α⊂ti␈α↓m␈α␈e␈α⊃n␈α␈eed␈α␈ed␈α⊂to
␈β⊃␈↓ ↓H␈ε#m␈α}ultiply␈α
an␈ε)␈α
m␈ε#-b␈α␈i␈α↓t␈α
n␈α␈u␈α␈m␈α␈be␈α␈r␈αby␈α
a␈α␈n␈ε)␈αn␈ε#-bit␈α
n␈α␈u␈α␈m␈α␈ber,␈αwh␈α␈en␈α
bo␈α␈th␈ε)␈α
m␈ε#␈αa␈α␈nd␈ε)␈α
n␈ε#␈αar␈α␈e␈αv␈α␈e␈α␈ry␈αla␈α␈rge␈α
bu␈α␈t
␈β9␈↓ ↓H␈ε)n␈ε#␈αis␈αm␈α␈uch␈α
large␈α␈r␈αthan␈ε)␈α
m␈ε#,␈αba␈α␈sed␈αo␈α␈n␈αth␈α␈e␈αresu␈α␈l␈α↓ts␈αp␈α␈ro␈α␈v␈α␈e␈α␈d␈αin␈αth␈α␈is␈αs␈α␈ection␈αfo␈α␈r␈ε)␈αm␈ε#␈α	=␈ε)␈α
n␈ε#?
␈βk␈↓ ↓V␈ε314.␈↓ α␈ε#[␈ε)M4␈α␈2␈↓ α\␈ε#]␈α⊗W␈α}rite␈α∩a␈α⊃pr␈α␈ogra␈α␈m␈α∩for␈α⊃A␈α↓lg␈α␈orithm␈α⊃C␈↓ π∧␈ε#,␈α∀inco␈α␈rpo␈α␈rating␈α⊃the␈α⊃impro␈α}v␈α␈eme␈α␈n␈α␈ts␈α∩o␈α␈f
␈β
∪␈↓ ↓H␈ε#e␈α␈xerc␈α␈i␈α↓se␈α∂4.␈α≤Co␈α␈mpa␈α␈re␈α∂i␈α↓t␈α∂with␈α∂a␈α∂pro␈α␈gram␈α∂for␈α∂Algorith␈α␈m␈α∂4.3.1M␈α∂an␈α␈d␈α∂with␈α∂a␈α∂pro␈α␈gram
␈β
:␈↓ ↓H␈ε#b␈α␈ased␈α
on␈α
(2),␈αto␈α
see␈αho␈α␈w␈αlarge␈ε)␈αn␈ε#␈αm␈α␈u␈α␈st␈αbe␈αb␈α␈efore␈αAlgo␈α␈ri␈α↓t␈α␈hm␈αC␈αis␈αan␈αimp␈α␈ro␈α␈v␈α}emen␈α}t.
␈β
m␈↓ ↓V␈ε315.␈↓ α␈ε#[␈ε)M4␈α␈9␈↓ α\␈ε#]␈α⊗(S.␈αλA.␈↓ βT␈ε#Cook.)␈α∞A␈αλm␈α␈ultiplica␈α␈ti␈α↓o␈α␈n␈αλalgo␈α␈rithm␈αλis␈αλsaid␈αλto␈αλb␈α␈e␈ε0␈αλon␈αλline␈ε#␈αλif␈αλthe␈αλ(␈↓ 
@␈ε)k␈↓ 
T␈ε#+␈αα1␈α␈)␈α↓s␈α␈t
␈β∞∀␈↓ ↓H␈ε#in␈α␈pu␈α␈t␈α∞bits␈α∞of␈α∞th␈α␈e␈α∞op␈α␈era␈α␈nd␈α␈s,␈α∂from␈α∞righ␈α}t␈α∞to␈α∞le$,␈α∂a␈α␈re␈α∞n␈α↓o␈α␈t␈α∞read␈α
un␈α}til␈α∂t␈α␈he␈↓ 	T␈ε)k␈↓ 	f␈ε#th␈α∞o␈α␈utp␈α␈ut␈α∞b␈α␈it
␈β∞<␈↓ ↓H␈ε#h␈α␈as␈α∂b␈α␈een␈α∞prod␈α␈uc␈α␈ed.␈α≠Wh␈α␈at␈α∂are␈α∂t␈α␈he␈α∂fast␈α␈est␈α∂po␈α␈ssi␈α↓b␈α␈le␈α∂on␈α␈-l␈α↓in␈α␈e␈α∂m␈α␈ultiplica␈α␈ti␈α↓o␈α␈n␈α∂alg␈α␈orithm␈α␈s
␈β∞d␈↓ ↓H␈ε#a␈α␈chiev␈α⎇able␈αo␈α␈n␈αv␈α}a␈α␈ri␈α↓o␈α␈us␈αsp␈α␈ecies␈αof␈αa␈α␈uto␈α␈mata␈α␈?
␈β∂¬␈↓ π⊃␈ε&2
␈β∂	␈↓ α␈ε"(␈↓ ε⊗␈ε"(␈↓ λ≠␈ε")
␈β∂␈↓ α_␈ε#The␈αb␈α␈est␈α
u␈α␈pp␈α␈er␈αbou␈α␈nd␈αk␈α␈no␈α␈wn␈αis␈↓ ¬|␈ε)O␈↓ ε"␈ε)n␈ε#␈α↓(␈↓ εB␈ε#log␈↓ εr␈ε)n␈↓ πε␈ε#)␈↓ π&␈ε#log␈↓ πV␈ε#log␈↓ λε␈ε)n␈↓ λ'␈ε#,␈α
d␈α␈ue␈αto␈αM.␈αJ.␈↓ 
↓␈ε#Fische␈α␈r␈α
a␈α␈nd
␈β∂3␈↓ ↓H␈ε#L.␈αJ␈α␈.␈↓ α⊗␈ε#Sto␈α␈ck␈α␈mey␈α␈e␈α␈r␈α[␈ε0J.␈αCo␈α␈mp.␈α
and␈α
S␈α␈yst.␈α
Sci.␈ε3␈α9␈ε#␈α
(19␈α␈74),␈α3␈α␈17␈α␈↑33␈α␈1];␈αtheir␈α
con␈α␈struc␈α␈ti␈α↓o␈α␈n␈α
w␈α␈ork␈α␈s
␈β∂Z␈↓ ↓H␈ε#o␈α␈n␈αm␈α␈u␈α␈l␈α↓tita␈α␈pe␈αT␈α⎇urin␈α␈g␈αmac␈α␈hine␈α␈s,␈αh␈α␈enc␈α␈e␈αalso␈αon␈α
poin␈α}ter␈αmach␈α␈ines.␈α∂Th␈α␈e␈αbest␈αlo␈α␈w␈α␈er␈αb␈α␈ou␈α␈nd
␈β⊂α␈↓ ↓H␈ε#k␈α␈n␈α↓o␈α}wn␈α∞is␈α
of␈α∞ord␈α␈er␈ε)␈α
n␈↓ βv␈ε#l␈α↓o␈α␈g␈↓ ∧&␈ε)n␈ε#␈α↓/␈↓ ∧K␈ε#l␈α↓o␈α␈g␈↓ ∧|␈ε#lo␈α␈g␈↓ ¬,␈ε)n␈ε#,␈α∂d␈α␈ue␈α
to␈α
M.␈α∞S␈α␈.␈↓ π"␈ε#P␈α↓a␈α␈terson␈α␈,␈α∂M␈α␈.␈α∞J.␈↓ 	⊗␈ε#Fische␈α␈r,␈α∂an␈α␈d␈α
A.␈α∞R.
␈β⊂*␈↓ ↓H␈ε#M␈α␈ey␈α␈e␈α␈r␈α⊂[␈ε0SIAM␈α␈/AMS␈α∂Pro␈α␈ceed␈α␈i␈α↓n␈α␈gs␈ε3␈α∂7␈ε#␈α∂(197␈α␈4),␈α⊃9␈α␈7↑1␈α␈11];␈α∩th␈α␈is␈α⊂a␈α␈pp␈α␈l␈α↓ies␈α∂to␈α∂m␈α␈ultitap␈α␈e␈α∂T␈α}u␈α␈ring
␈β⊂O␈↓ ¬z␈ε")
␈β⊂Q␈↓ ↓H␈ε#m␈α␈ach␈α␈i␈α↓n␈α␈es␈αb␈α␈ut␈αnot␈αto␈↓ βz␈ε#p␈α␈oin␈α␈ter␈αm␈α␈ach␈α␈i␈α↓n␈α␈es.
␈β∪(/FONT#1=cmathx[XGP,SYS]=↓⊂⊃∩∪⊗↔~≠ !8:<>PXpqrxz{|⎇⎇/FONT#14=cmsc9[XGP,SYS]=ACDEFGHILMNOPRSTUWYY/FONT#21=cmtt9[XGP,SYS]=IMXX/FONT#34=cmr10[XGP,SYS]=↓∞∂⊃∪~!"$'()+,-./0123456789:;<=>?ABCDEFGHIJKLMNOPRSTUVWXYZ[\]↑abcdefghijklmnopqrstuvwxyz{|⎇}␈␈/FONT#35=cmr9[XGP,SYS]=∂⊃∪∀"$'()+,-./0123456789:;<=>?ABCDEFGHIJKLMNOPRSTUWXZ[\]↑abcdefghijklmnopqrstuvwxyz{|⎇}}/FONT#36=cmr8[XGP,SYS]=.01489ABCFILMNOPTUYY/FONT#37=cmr7[XGP,SYS]=()+,./0123456789<=[]cdglmouu/FONT#38=cmr6[XGP,SYS]=()+/012345789<[]gll/FONT#39=cmr5[XGP,SYS]=+01233/FONT#40=cmi10[XGP,SYS]=∞∂⊃∩→%ACEGKLMNOPQRTUVWZabcdefgijklmnpqrstuvwxyz|⎇⎇/FONT#41=cmi9[XGP,SYS]=→0123456789ACEKMNOQRUVWXZabcdefgijklmnpqrtuvwxyz||/FONT#43=cmi7[XGP,SYS]=∂KLQRabdefijklmnpqrst⎇⎇/FONT#44=cmi6[XGP,SYS]=Kbcdefgijkmnoqrstt/FONT#45=cmi5[XGP,SYS]=jkqrr/FONT#46=cmsc10[XGP,SYS]=.ADENOSTUWW/FONT#47=cms10[XGP,SYS]=∞∪"$,-.:?ABCDEFGHIJLMNOPRSTWZ\↑abcdefghijklmnopqrstuvwxyz|⎇⎇/FONT#48=cms9[XGP,SYS]=∞'-./1234567:?ABCDGHIJLMNPRSTZabcdefghijklmnoprstuvxyz||/FONT#50=cmb10[XGP,SYS]=.0123456789ABCDEFHMPRSTU↑abcdefghilmnoprstuvyy/FONT#51=cmb9[XGP,SYS]=.0123456789FNgii/FONT#53=cmtt[XGP,SYS]=()*+,-012345678:ABCDEFGHIJLMNOPQRSTUVWXYZZ/FONT#54=cmsy10[XGP,SYS]=↓αλ
⊃∀∃→≤ !1bcfgjpx⎇⎇/FONT#55=cmsy9[XGP,SYS]=↓α⊃∀∃≤ $bcdefgjpp/FONT#57=cmsy7[XGP,SYS]=↓⊃∀0bcdepp/FONT#58=cmsy6[XGP,SYS]=∀0dee/FONT#59=cmsy5[XGP,SYS]=/FONT#61=cmssb[XGP,SYS]=*-.1234?ACEFHILMNOPRSTUWXabcdeghilmnoprstuwyy